Http协议
Http协议请求头
- Http的请求分为三个部分:
- 请求头
- 行信息
- 请求体
下面是安装了tomcat后localhost网站获取的请求头
GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh-CN User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) Accept-Encoding: gzip, deflate Host: localhost Connection: Keep-Alive GET / HTTP/1.1 表示发送的是Get请求,请求时HTTP协议的版本为1.1 Accept: text/html, application/xhtml+xml, */* Accept表示的是客户端可接受的类型 Accept-Language: zh-CN Accept-Language:客户端浏览器语言 User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) User-Agent:表示的是用户使用的请求环境即客户端浏览器版本 Accept-Encoding: gzip, deflate Accept-Encoding:表示客户端可以识别的压缩数据格式 Host: localhost Host:表示的是用户访问的服务器地址 Connection: Keep-Alive Connection:表示盖茨请求连接后,连接是保持或关闭
在上面的请求中还有几个常见但未使用到的键值对
Accept-Charset:ISO-8859-1 Accept-Charset:表示的客户端可识别的编码字符集,也就是说服务器发送过来的响应文件都会按照该字符编码集进行解码 If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 该请求资源在客户端保存最后访问时间 Referer: http://www.itcast.com/index.jsp 上一次请求访问的页面 防盗链的产生,控制来源的,如果不是本网站上的跳转,可以重定向到当前的主页面
Http协议之响应头
- Http协议的响应分为以下几个部分:
- 状态行
- 响应头
- 响应体
额外的解释
状态行是携带Http协议,状态码,描述信息
这里是向tomcat服务器发送请求后得到的响应头,返回的html文件省略
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 ETag: W/"7347-1184876416000" Last-Modified: Thu, 19 Jul 2007 20:20:16 GMT Content-Type: text/html Content-Length: 7347 Date: Sat, 10 Oct 2015 10:11:59 GMT HTTP/1.1 200 OK 表示的是使用Http协议1.1 状态码200 Server: Apache-Coyote/1.1 服务器类型 ETag: W/"7347-1184876416000" If-Modified-Since:这个选项控制缓存的最后更改时间精确度最多到秒 ETag:这个选项可以将缓存的最后更改时间精确度控制到毫秒 客户端下次请求时,将携带If-None-Match携带ETag信息 文件长度7347而1184876416000是标准时间,精确到毫秒 Last-Modified: Thu, 19 Jul 2007 20:20:16 GMT 文件的最后修改时间 和请求头信息If-Modified-Since一起使用,控制服务器缓存 Content-Type: text/html,charset=GB2312 响应的数据类型 Content-Length: 7347 响应的数据长度 Date: Sat, 10 Oct 2015 10:11:59 GMT 响应时间
额外的键值对的使用
Location: http://www.it315.org/index.jsp 请求重定向,一般与302的状态码一起使用 在重定向的使用中,有两次请求,两次响应
疑问区
- 在设置了默认的欢迎页面后,发送了两次请求