HTTP 协议:
1.什么是协议?
数据的格式.
2.HTTP协议.
Http协议是用来定义 web浏览器与web服务器之间交换数据的格式的专用的.
3.实验一:通过telnet 连接程序
a)打开dos命令行窗口 : telnet localhost 8080
b) 解决乱码 :
ctrl + ]
c) 乱码解决后,去访问tomcat首页.
GET / HTTP/1.1
Host:
GET / HTTP/1.0
Host:
实验二:在IE安装Httpwatch插件
重启 ie, 然后点击 查看 -- 浏览器栏, 就可以找到安装的HTTP watch插件了.
HTTP1.0 与 HTTP 1.1的区别
1.0 一次只可以连上一个web资源.
1.1 一次可以连上多个web资源, 并且保持一段时间不断开连接.
4.HTTP请求
请求行: GET /day02/1.html HTTP/1.1
请求体: key=value,value (一个key可以对应多个value)
=========get方式的请求与post方式的请求的区别===================
a) get方式的请求 : GET /day02/1.html HTTP/1.1
post方式的请求: POST /day02/1.html HTTP/1.1
b)数据的提交方式也不同: get的请求数据会跟在url地址后面
get: http://localhost:8080/day02/1.html?username=lijianqun&age=19
post: http://localhost:8080/day02/1.html ,那么post方式的数据是放在了请求体中
c) get方式木有 请求体. 而 post方式有.
一般都采用 post方式的请求. 如果表单提交就采用 post.
除了表单提交的时候可以设置成post方式外,其他的请求都是get方式.
d) 实际开发过程中,如果给用户一个超链接, 而用户点击的时候,又希望用户可以带一些数据过来.
<a href="/day02/img.html?name=wangpan">小样儿,来点我啊</a>
注意: GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
post方式请求的数据由于跟在请求体中的, 所以请求的数据就没有大小限制了.
请求头含义详解:
Accept: text/html,image/* 表示 客户端 接受的数据格式.
Accept-Charset: UTF-8 表示客户端采用的编码集
Accept-Encoding: gzip,compress 表示客户端支持的数据压缩格式. gzip压缩. (重点)
Accept-Language: en-us,zh-cn 客户端接受的语言种类
Host: www.it315.org:80 表示客户端要访问的主机名
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT ( 重点 )
Referer: http://www.it315.org/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 客户端访问服务器的时间.
5.HTTP响应
响应行: HTTP/1.1 200 OK
6.常用的响应状态码
1xx: 请求信息不完整. informational
2xx: success , 成功处理请求
3XX: redirection. 请求"重定向".
4xx: client error , 客户端出现错误,资源不存在
5xx: 服务器端内部错误. server error
200 , 302 ,304,404,500
200 : 表示一切OK, 服务器完美的完成了整个响应.
302 : 一般会与location响应头一起实现请求重定向, (重点)
304 :请求的资源未改变,通知客户端直接到本地拿缓存.
404 :请求的资源不存在, 一般 表示 请求的路径有问题. 401 ,403
500 : 请求的时候服务器端出现了错误.
7. 常用的响应头详解:
响应头:
Location: http://www.it315.org/index.jsp 与302 一起实现请求重定向,
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 , 304 一起实现缓存
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 服务器回写数据的时间.
=======================重点======================================
1) 302 + Location 完成请求重定向
2) refresh 自动刷新
3) gzip压缩
a) 用程序代码实现压缩.
b) 通过配置tomcat 服务器来实现压缩.
在server.xml中的connector中配置
compressableMimeType="text/html,text/xml,text/plain" compression="on"
压缩前: 00:00:00.000 1.163 11599 GET 200 text/html;charset=ISO-8859-1 http://localhost:8080/
压缩后: 00:00:00.000 1.150 2296 GET 200 text/html;charset=ISO-8859-1 http://localhost:8080/
4) Tomcat默认缓存策略 If-Modified-Since Last-Modified 结合304 实现
http://localhost:8080/tomcat.css
第一次访问: Last-Modified: Sun, 05 May 2013 00:55:08 GMT
第二次访问: If-Modified-Since: Sun, 05 May 2013 00:55:08 GMT
5) 禁用缓存
实现客户端禁用缓存.
Expires: -1
Cache-Control: no-cache
Pragma: no-cache