1.web入门

一. Web的简单介绍

MyEclipse:
	Word Completion --> 默认是 alt+/
	Content Assist --> 默认是 ctrl+space

1. 什么是Web?

	在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
	Internet上供外界访问的Web资源分为:静态web资源和动态web资源。

2. 软件的架构:

	C/S:Client/Server:客户端和服务器 如 QQ、迅雷、暴风影音... 需要在 客户端进行安装
		优点:可以在客户端 写出 炫的效果.
		缺点:一旦服务器代码进行更新  所有的客户端 都需要更新.
			
	B/S:Broswer/Server:浏览器和服务器  如 WebQQ、支付宝、网银系统... 不需要进行安装 只需要浏览器即可
		优点:服务器更新 客户端不需要 更新.
		缺点:对服务器压力比较大.
			AJAX --- 对 代码写在 客户端浏览器上.(RIA) Rich Internet Application.
	软件发展趋势:B/S方向发展.  前端 --- 增强 用户 体验.主要使用Java开发B/S结构的软件.

3. WEB网站资源:

	静态web资源:html css js 图片 视频...
	动态web资源:
		做网站 JSP/Servlet 没有优势.  开发系统 --- 网银、OA、....
		SUN :   Servlet/JSP
		微软:   ASP
		开源:  PHP (LAMP Linux Apache Mysql Php  模板 --- )
		日本:   Ruby 
			   python  

4. 服务器:

	硬件:一个电脑.
	软件:安装一个 服务器 软件.
		* 一台电脑 安装 了 服务器软件的话 就可以称为  web服务器。
		
	公网ip : 独立ip.
	
	作用:在我的电脑上安装服务器  我的电脑上有一个1.html  然后 所有人通过我的ip就可以访问1.html.
		服务器底层:Socket.

5. 常见的web服务器:

	WebLogic	:BEA公司产品.  收费的web服务器  现在已经被Oracle收购了. 支持所有的JAVAEE规范
	WebSphere	:IBM公司产品.  收费的web服务器  支持所有的JAVAEE规范
	Tomcat		:apache组织 开源的 免费的web服务器  支持Servlet/JSP规范.

6. 启动的常见问题:

	1.没有配置JAVA_HOME
	2.端口号冲突:   tomcat默认端口号  8080。
		http默认端口号 :80
		***** 修改tomcat端口号。
			去 tomcat/conf/server.xml   重启服务器.
		
		80端口 很容易占用了.
		异常:java.net.BindException: Address already in use: JVM_Bind  
			端口被占用了.
		* 1.将占用80端口的进程 结束.
			xp: FPort工具
			win7: 使用doc命令:netstat -ano
				win7自带一个服务器  IIS --- 占用80  开机自动启动.
				进入服务界面:services.msc
				
		* 2.将tomcat的80端口 修改了.
		
	3.配置了一个环境变量:
		CATALINA_HOME:配置   配置错了。 tomcat启动不了.
		配置正确了 --- 启动机器上任何一个tomcat  都相当于 启动CATALINA_HOME配置的tomcat.

7. Tomcat服务器目录结构:

	bin		:启动和关闭服务器.
	conf	: tomcat的配置  			---- 重点.
	lib		:tomcat支持的类库
	logs	:tomcat的日志.
	temp	: 存放临时文件.
	webapps	: 网站 放在路径下 就可以被其他人访问.	--- 重点.
	work	: jsp编译成servlet后的文件  session序列化 	--- 重点.

8. web应用目录结构.

	website
		|---- html css js 图片
		|---- WEB-INF
				|---- web.xml  --- 针对当前项目的配置文件   (必须的)
				|---- classes  --- Java类编译后的class文件 存在在这个路径下.
				|---- lib	   --- 存放第三方的jar包.

9. tomcat配置虚拟路径.

	1.将项目copy到 webapps下.

	2.在'conf'下'server.xml'中 配置标签<Context>
		在<Host>标签下配置: 
		<Context path="/itheima" docBase="c:\bb"></Context>

	  注意: 一个Context即代表一个web应用,context元素在配置文件中除用于映射虚似目录外,
			它还可用于为web应用配置一些资源,
			例如:配置web应用使用的数据库连接池,javamail session等(这些本配置以后会用到)。

	3.推荐使用 在'conf'下新建一个'/Catalina/localhost/xxx.xml'
		在xxx.xml中配置<Context  docBase="c:\bb"></Context>
		--> path就是文件名xxx 

10. 通过WAR方式发布部署web应用

	jar包:java项目可以制作成jar包
	war包:web项目可以制作成war包
		* 使用压缩软件  选择 zip格式 进行压缩
		* 使用开发工具 Myeclipse 发布项目时候 选择 发布一个模式了.

11. 访问网站全过程分析

	1、在浏览器输入url地址
	2、访问本机域名解析文件 hosts ======= c:\windows\system32\drivers\etc\ 
	3、如果本机没有查找到域名,查找网络上DNS服务器 
	4、域名解析后,获得域名对应ip地址。根据ip和port访问网络上指定主机和服务

12. 真实开发网站过程

	1、开发网站
	2、将网站发布web服务器上 (公网ip)
	3、在DNS域名解析服务器上注册域名,和服务器ip绑定

13. 配置虚拟主机(搭建百度网站)

	1、抓取baidu主页 
	2、在c盘 新建虚拟主机目录'c:\baidu'
	3、在c:\baidu下新建百度网站目录'website'(复制网站页面到 website目录)
	4、在conf/server.xml 配置虚拟主机
		<Host name="www.baidu.com"  appBase="C:\baidu"
		            unpackWARs="true" autoDeploy="true"
		            xmlValidation="false" xmlNamespaceAware="false">
		</Host>
	5、在本机 hosts文件添加 --> 192.168.1.250 www.baidu.com 
		测试 cmd中 ping www.baidu.com 测试hosts是否配置成功

	6、将'website'配置成缺省网站  在<Host>标签内内部添加<Context>标签
		<Context path="" docBase="website" />
	7、将'baidu.htm'添加到默认欢迎页面 (修改conf/web.xml配置文件) 
		<welcome-file-list>
		        <welcome-file>index.html</welcome-file>
		        <welcome-file>index.htm</welcome-file>
		        <welcome-file>index.jsp</welcome-file>
		        <welcome-file>baidu.htm</welcome-file>
		</welcome-file-list>

二. HTTP协议入门

1. Http协议:

	协议:双方达成一致.
		浏览器和服务器端如何进行通信.

	HTTP协议.---超文本传输协议.
		基于TCP的协议.
		默认的端口80
		基于请求响应模型:
			* 必须先有请求  后有响应.
			* 请求和响应必须成对出现.
		是TCP/IP协议的一个应用层协议。

	通过一个telnet命令  感受HTTP协议.
		1.cmd>telnet localhost 80 回车
		2.解决telnet命令乱码   ctrl+]  回车
		3.telnet命令 不能出错 
		GET /day02/1.html HTTP/1.1 host:localhost
		点两下回车.
		
	通过HttpWatch工具(IE)	  Firefox  使用fireBug
	
	Http协议的版本  1.0  和 1.1
		1.0	客户端和服务器连接了一次以后 马上就会断开
		1.1	客户端和服务器连接了一次以后 不是马上断开  

2. HTTP请求

	客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。

	一个完整的HTTP请求包括: 
		一个请求行
			--> 请求行用于描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号

		若干消息头
			--> 消息头用于描述客户端请求、哪台主机,以及客户端的一些环境信息等

		实体内容
			--> 只有POST方式才有.是POST提交参数.GET方式是一个空行。


	请求行
		格式: 请求方式、资源路径、协议版本
		请求方式
			请求方式有很多 常用的两种 POST 和 GET这两种:
			POST
				<form method="POST">
			GET
				<a href=""></a>
				<form></form> 标签默认是GET。
				
			POST提交数据不会显示到地址栏中 会显示到 请求体中 一般没有大小限制.
			Get提交数据显示到地址栏中  提交的数据有大小限制  一般不会超过1kb.
		资源路径:
		
		协议版本:

	请求头:
		Accept: text/html,image/*    
		Accept-Charset: ISO-8859-1
		Accept-Encoding: gzip
		Accept-Language:zh-cn 
		Host: www.itcast.com:80
		If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
		Referer: http://www.itcast.com/index.jsp
		User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
		Connection: close/Keep-Alive   
		Date: Tue, 11 Jul 2000 18:23:51 GMT
		
		重点:If-Modified-Since、Referer、User-Agent
			User-Agent : 客户端浏览器类型  MSIE  IE浏览器   Firefox 火狐浏览器.
			If-Modified-Since:结合 响应中一个头信息  Last-Modified 查找本地缓存.
			Referer : 代表 网页  来源。  防盗链.
				
	请求体:
		只有POST方式才有.是POST提交参数.

3. HTTP请求的细节

	请求行中的GET称之为请求方式。
	请求方式有:
		POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT、CONNECT
	常用的有:
		GET、 POST
	
	用户如没有设置,那么默认情况下浏览器向服务器发送的都是get请求,
	例如在浏览器直接输地址访问,点超链接访问等都是get,
	用户如想把请求方式改为post,可通过更改表单的提交方式实现。
	不管POST或GET,都用于向服务器请求某个WEB资源。

	这两种方式的区别主要表现在数据传递上:
		如请求方式为GET方式:
			则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
			GET /mail/1.html?name=abc&password=xyz HTTP/1.1
			GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
		如请求方式为POST方式:
			则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。

4. HTTP响应

	一个HTTP响应代表服务器向客户端回送的数据。

	一个完整的HTTP响应应包括:
		--> 一个状态行、若干消息头、以及实体内容 。 

	响应行
		格式: HTTP版本号 状态码 原因叙述<CRLF>
		举例:HTTP/1.1 200 OK
		备注:
			响应状态码分为5类,如下所示:
				200 :请求成功处理,一切OK
				302 :请求重定向 (A找'B'借钱, 'B'通知A找'C'借钱, A又去找'C'借钱) A客户端, B、C服务器.
				304 :服务器端资源没有改动,通知客户端查找本地缓存 
				404 :客户端访问资源不存在
				500 :服务器内部出错 

			HTTP/1.1 200 OK  协议版本、状态码、描述信息
				Informational 1xx 信息不足,请求无法处理
				Successful 2xx 请求成功处理
				Redirection 3xx 请求已经处理 ,还需要客户端有进一步操作
				Client Error 4xx  客户端错误
				Server Error 5xx  服务器端错误

	响应头
		Location: http://www.it315.org/index.jsp 
		Server:apache tomcat
		Content-Encoding: gzip 
		Content-Length: 80 
		Content-Language: zh-cn 
		Content-Type: text/html; charset=GB2312 
		Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
		Refresh: 1;url=http://www.it315.org
		Content-Disposition: attachment; filename=aaa.zip
		Expires: -1
		Cache-Control: no-cache  
		Pragma: no-cache   
		Connection: close/Keep-Alive   
		Date: Tue, 11 Jul 2000 18:23:51 GMT

		重点:
			Location : 结合302状态码  完成重定向.
			Last-Modified : 和请求 If-Modified-Since 一起用 查找本地缓存.
			Refresh : 页面自动刷新或跳转.
			Content-Disposition: 下载时候使用的。

			禁用浏览器缓存
				Expires: -1
				Cache-Control: no-cache  
				Pragma: no-cache 
		
	响应体:
		显示到页面的HTML代码.

5. HTTP响应的细节

	Location: http://www.it315.org/index.jsp (重点) 结合302完成重定向 操作 Location重定向后地址
	Server:apache tomcat 服务器类型
	Content-Encoding: gzip  响应编码类型 gzip压缩 
	Content-Length: 80  响应长度
	Content-Language: zh-cn 响应语言
	Content-Type: text/html; charset=GB2312 响应字符集 
	Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT (重点) 和If-Modified-Since 一起使用,实现服务器缓存策略
	Refresh: 1;url=http://www.it315.org (页面自动刷新) 
	Content-Disposition: attachment; filename=aaa.zip 文件下载

1.重定向:
	// 设置状态码 302 
	response.setStatus(302);
	// 指定 重定向页面地址
	response.setHeader("Location", "img.html");

2.自动刷新
	// 设置refresh
	response.setHeader("refresh", "5;url=index.html");	
	// 显示提示信息
	response.setContentType("text/html;charset=utf-8");
	response.getWriter().println("网页会在5秒后 跳转 index.html");

3) gzip压缩 
	工具-- internet选项 --- 设置 --查看文件 
	+ 0.000		!	0.097	394	7553	GET	200	html	http://localhost/

	配置tomcat/conf/server.xml 在 Connector中配置 压缩 
	
	<Connector port="80" protocol="HTTP/1.1" 
	               connectionTimeout="20000" 
	               redirectPort="8443“ compressableMimeType="text/html,text/xml,text/plain" compression="on"/>

	+ 0.000			0.093	394	2715	GET	200	html	http://localhost/

4) Tomcat默认缓存策略 If-Modified-Since Last-Modified 结合304 实现 

5) 禁用缓存
	Expires: -1  
	Cache-Control: no-cache  
	Pragma: no-cache 
	防止浏览器不兼容,如果网页禁用缓存后,不会在 工具-- internet选项 --- 设置 --查看文件 产生缓存文件 

补充

1. 端口占用问题
	WindoxXP 使用Fport工具
	Win7 使用DOS命令 netstat  –ano

2. services.msc 快速打开服务

3. ipconfig /flushdns命令

插入图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值