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兩部分。css
Requests部分html
Accept:指定客戶端可以接收的內容類型,示例:Accept:text/plain,text/htmllinux
Accept-Charset:瀏覽器能夠接受的字符編碼集。示例:Accept-Charset:iso-8859-5web
Accept-Encoding:指定瀏覽器能夠支持的web服務器返回內容的壓縮編碼類型。Accept-Encoding:compress,gzip瀏覽器
Accept-Language:瀏覽器能夠接受的語言。示例:Accept-Language:en,zh緩存
Accept-Ranges:能夠請求實體的一個或多個子範圍。示例:Accept-Ranges:bytes服務器
Authorization:HTTP受權的受權證書。示例:Authorization:Basic QWxhZGRpbjpvcGVulHNic2FtZQ==cookie
Cache-control:指定請求和響應遵循的緩存機制。示例:Cache-Control:no-cache網絡
Connection:表示是否須要持久鏈接。(HTTP1.1默認進行持久鏈接)。示例:Connection:clolseapp
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