本文系统的对HTTPHeaders进行了简明易懂的阐述
,我仅稍作笔记
。 什么是HTTPHeaders
HTTP是“HypertextTransferProtocol”的所写
,整个万维网都在使用这种协议,几乎你在浏览器里看到的大部分内容都是通过http协议来传输的,比如这篇文章
。 HTTPHeaders是HTTP请求和相应的核心,它承载了关于客户端浏览器,请求页面,
服务器等相关的信息。
示例
当你在浏览器地址栏里键入一个url,你的浏览器将会类似如下的http请求:
GET/tutorials/other/top-20-
mysql-best-practices/HTTP/1.1
Host:net.tutsplus.com
User-Agent:Mozilla/5.0(Windows;U;WindowsNT6.1;en-US;rv:1.9.1.5)Gecko/20091102Firefox/3.5.5(.NETCLR3.5.30729)
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:en-us,en;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Cookie:
PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
Pragma:no-cache
Cache-Control:no-cache
第一行被称为“RequestLine”它描述的是这个请求的基本信息,剩下的就是HTTPheaders了。
请求完成之后,你的浏览器可能会收到如下的HTTP响应:
HTTP/1.x200OK
Transfer-Encoding:chunked
Date:Sat,28Nov200904:36:25GMT
Server:LiteSpeed
Connection:close
X-Powered-By:W3TotalCache/0.8
Pragma:public
Expires:Sat,28Nov200905:36:25GMT
Etag:"pub1259380237;gz"
Cache-Control:max-age=3600,public
Content-Type:text/html;charset=UTF-8
Last-Modified:Sat,28Nov200903:50:37GMT
X-Pingback:http://net.tutsplus.com/xmlrpc.php
Content-Encoding:gzip
Vary:Accept-Encoding,Cookie,User-Agent
<!--...restofthehtml...-->
第一行呢被称为“StatusLine”,它之后就是httpheaders,空行完了就开始输出内容了(在这个
案例中是一些html输出)。
但你查看页面源代码却不能看到HTTPheaders,虽然它们同你能看到的东西一起被传送至浏览器了。
这个HTTP请求也发出了一些其它资源的接收请求,例如图片,css文件,js文件等等。
下面我们来看看细节。