请求头
Host
Host: rlog.cn
浏览器请求的是哪个域名下的资源,这只是基本的主机名,包含域名和子级域名。
User-Agent
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
浏览器名和版本号.
操作系统名和版本号.
默认语言.
Accept-Language
Accept-Language: en-us,en;q=0.5
用户的默认语言设置
通过逗号分割来携带多国语言。第一个会是首选的语言,其它语言会携带一个“q”值,来表示用户对该语言的喜好程度(0~1)。
Accept-Encoding
Accept-Encoding: gzip,deflate
服务器就会压缩过的HTML发送给浏览器。这可以减少近80%的文件大小,以节省下载时间和带宽。
Cookie
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120; foo=bar
发送浏览器中存储的Cookie信息给服务器。
Referer
Referer: http://net.tutsplus.com/
referring url信息。
Authorization
Authorization: Basic bXl1c2VyOm15cGFzcw==
需要输入帐号密码来进行认证
响应头
Expires | Cache-Control
Expires: Sat, 28 Nov 2009 05:36:25 GMT | Cache-Control: max-age=3600, public
都是控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只是Cache-Control比Expires可以控制的多一些, 而且Cache-Control会重写Expires的规则。
Content-Type
Content-Type: text/html; charset=UTF-8
浏览器将会依据该参数决定如何对文档进行解析。
Content-Disposition
Content-Disposition: attachment; filename="download.zip"
这个头部信息将告诉浏览器打开一个文件下载窗口,而不是试图解析该响应的内容。
Content-Length
Content-Length: 89123
当内容将要被传输到浏览器时,服务器可以通过该头部告知浏览器将要传送文件的大小(bytes)。
根据此参数,浏览器可以知道下载进度
Location
Location: http://net.tutsplus.com/
这个头部是用来重定向的。如果响应代码为 301 或者 302 ,服务器就必须发送该头部。
Set-Cookie
当一个网站需要设置或者更新你浏览的cookie信息时,它就会使用这样的头部:
Set-Cookie: skin=noskin; path=/; domain=.amazon.com; expires=Sun, 29-Nov-2009 21:42:28 GMT
Set-Cookie: session-id=120-7333518-8165026; path=/; domain=.amazon.com; expires=Sat Feb 27 08:00:00 2010 GMT
每个cookie会作为单独的一条头部信息。注意,通过js设置cookie将不会体现在HTTP头中。
WWW-Authenticate
WWW-Authenticate: Basic realm="Restricted Area"
一个网站可能会通过HTTP发送这个头部信息来验证用户。当浏览器看到头部有这个响应时就会打开一个弹出窗。
Content-Encoding
Content-Encoding: gzip
这个头部通常会在返回内容被压缩时设置。
两组特殊的请求
Last-Modified / If-Modified-Since
If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT / Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT
服务器上文件上次修改的时间,用来比对服务器端文件是否有修改
是浏览器发送请求到服务器后判断文件是否 已经修改过,如果没有修改过就只发送一个304回给浏览器,告诉浏览器直接从自己本地的缓存取数据;如果修改过那就整个数据重新发给浏览器。
服务器返回的response的headers中包含; If-Modified-Since--浏览器向服务器发送的request的headers中包含。
ETag / If-None-Match
Etag: "pub1259380237;gz" / If-None-Match: "pub1259380237;gz"
服务器上被请求变量的实体标记,用来比对服务器端文件是否有修改
浏览器发送请求到服务器后判断文件是否 已经修改过,如果没有修改过就只发送一个304回给浏览器,告诉浏览器直接从自己本地的缓存取数据;如果修改过那就整个数据重新发给浏览器。
ETag--服务器返回的response的headers中包含; If-None-Match--浏览器向服务器发送的request的headers中包含。
原理
是浏览器发送请求到服务器后判断文件是否 已经修改过,如果没有修改过就只发送一个304回给浏览器,告诉浏览器直接从自己本地的缓存取数据;如果修改过那就整个数据重新发给浏览器。
参考
Http头介绍:Expires,Cache-Control,Last-Modified,ETag
http://www.51testing.com/html/28/116228-238337.html
什么是HTTP Headers?
https://www.cnblogs.com/yuzhongwusan/archive/2011/10/20/2218954.html