HTTP(Hyper Text Transfer Protocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求/响应模型。客服端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。就整个网络资源传输而言,包括message-header和message-body两部分。首先传递的是message-header,即http header消息。http header 消息通常被分为4个部分:general header(通用头),request header(请求头),response header(响应头),entity header(实体头)。但是这种分法感觉界限不太明确。根据维基百科对http header内容的组织形式,大体分为Request和Response两部分。
Requests部分
Accept:指定客户端能够接收的内容类型,示例:Accept:text/plain,text/html
Accept-Charset:浏览器可以接受的字符编码集。示例:Accept-Charset:iso-8859-5
Accept-Encoding:指定浏览器可以支持的web服务器返回内容的压缩编码类型。Accept-Encoding:compress,gzip
Accept-Language:浏览器可以接受的语言。示例:Accept-Language:en,zh
Accept-Ranges:可以请求实体的一个或多个子范围。示例:Accept-Ranges:bytes
Authorization:HTTP授权的授权证书。示例:Authorization:Basic QWxhZGRpbjpvcGVulHNic2FtZQ==
Cache-control:指定请求和响应遵循的缓存机制。示例:Cache-Control:no-cache
Connection:表示是否需要持久连接。(HTTP1.1默认进行持久连接)。示例:Connection:clolse
COOKIE:HTTP请求发送时,会把保存在该请求域名下的所有COOKIE值一起发送给web服务器。示例:COOKIE:$Version=1;Skin=new;
Content-Length:请求的内容长度。示例:Content-Length:348
Content-Type:请求的与实体对应的MIME信息。示例:Content-Type:application/x-www-form-urlencoded
Date:请求发送的日期和时间。示例:Date:Tue,15 Nov 2010 08:12:31 GMT
Expect:请求的特定的服务器行为。示例:Expect:100-continue
From:发出请求的用户的Email。示例:From:user@email.com
Host:指定请求的服务器的域名和端口号。示例:Host:www.zcmhi.com
If-Match:只有请求内容与实体相匹配才有效。示例:If-Match:"737060cd8c284d8af7ad3082f209582d"
If-Modified-Since:如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。示例:If-Modified-Since:Sat,29 Oct 2010 19:43:31 GMT
If-None-Match:如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变。示例:If-None-Match:"737060cd8c284d8af7ad3082f209582d"
If-Range:如果实体未改变,服务器发送客服端丢失的部分,否则发送整个实体。参数也为Etag。示例:If-Range:"737060cd8c284d8af7ad3082f209582d"
If-Unmodified-Since:只在实体在指定时间之后未被修改才请求成功。示例:If-Unmodified-Since:Sat,29 Oct 2010 19:43:31 GMT
Max-Forwards:限制信息通过代理和网关传送的时间。示例:Max-Forwards:10
Pragma:用来包含实现特定的指令。示例:Pragma:no-cache
Proxy-Authorization:连接到代理的授权证书。示例:Proxy-Authorization:Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range:之请求实体的一部分,指定范围。示例:Range:bytes=500-999
Referer:发出请求的页面的URI,即来路。示例:Referer:http://www.zcmhi.com/archives/71.html
TE:客服端愿意接受的传输编码,并通知服务器接受接收尾加头信息。示例:TE:trailers,deflate;q=0.5
Upgrade:向服务器指定某种传输协议以便服务器进行转换(如果支持)。示例:Upgrade:HTTP/2.0,SHTTP/1.3,IRC/6.9,RTA/x11
User-Agent:User-Agent的内容包含发出请求的用户信息,浏览器的用户代理字符串。示例:User-Agent:Mozilla/5.0(Linux;X11)
Via:通知中间网关或代理服务器地址,通信协议。示例:Via:1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning:关于消息实体的警告信息。示例:Warn:199 Miscellaneous warning
Responses部分
Accept-Ranges:表明服务器是否支持指定范围请求及哪种类型的分段请求。示例:Accept-Ranges: bytes