GET /day31_Http_306/index.jsp HTTP/1.1: GET请求,请求服务器路径为/hello/index.jsp,协议为1.1
请求头
1.Host:localhost:请求的主机名为localhost
2.User-Agent:Mozilla/5.0(Windows NT 5.1; rv:5.0)Gecko/20100101 Firefox/5.0:
与浏览器和OS相关的信息,有些网站会显示用户的系统版本和浏览器版本信息,这都是通过获取User-Agent头信息而来的
3.Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8:
告诉服务器,当前客户端可以接收的文档类型,其实这里包含了"/"这表示什么都可以接收
4. Accept-Language: zh-cn,zh;q=0.5:
当前客服端支持的语言,可以在浏览器的工具-》选项中找到语言相关信息
5. Accept-Encoding: gzip, deflate:
支持的压缩格式,数据在网络上传递时,可能服务器会把带护具压缩后再发送
6. Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7:
客户端支持的编码
7. Connection: keep-alive:
客户端支持的链接方式,保持一段时间链接,默认为3000ms
8.Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98:
因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的Cookie在请求中一并发送去过,这个cookie的名字是JSESSIONID
9.Referer请求头
浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这个头。常用于防盗链
10.If-Modified-since
浏览器通知服务器,本地缓存的最后变更时间,与另一个响应头组合控制浏览器页面的缓存
响应状态码
响应头对浏览器来说很重要,它说明了响应的真正含义。例如200表示响应成功了,302表示重定向,这说明浏览器需要再发一个新的请求。
200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
405:服务器端的方法出现错误(你需要调用的方法被修改了)
500:请求资源找到了,但服务器内部出现了错误;
302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;
304:当用户第一次请求index.html时,服务器会添加一个名为Last-Modified响应头,这个头说明了index.html的最后修改时间,浏览器会把index.html内容,以及最后响应时间缓存下来。当用户第二次请求index.html时,在请求中包含一个名为If-Modified-Since请求头,它的值就是第一次请求时服务器通过Last-Modified响应头发送给浏览器的值,即index.html最后的修改时间,If-Modified-Since请求头就是在告诉服务器,我这里浏览器缓存的index.html最后修改时间是这个,您看看现在的index.html最后修改时间是不是这个,如果还是,那么您就不用再响应这个index.html内容了,我会把缓存的内容直接显示出来。而服务器端会获取If-Modified-Since值,与index.html的当前最后修改时间比对,如果相同,服务器会发响应码304,表示index.html与浏览器上次缓存的相同,无需再次发送,浏览器可以显示自己的缓存页面,如果比对不同,那么说明index.html已经做了修改,服务器会响应200。