通常HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。
登錄到CSDN后,隨便點了一個資源,看看HTTP頭部信息:
從上圖可以看到,頭部信息包括三部分:
1、通用頭部
2、請求頭部
3、響應頭部
4、查詢字符串參數
分別介紹:
1、通用頭部
通用頭域包含請求和響應消息都支持的頭域。
Request URL:請求的URL地址
Request Method: 請求方法,get/post/put/……
Status Code:狀態碼,200 為請求成功
Remote Address:路由地址
2、請求頭部
1) Accept: 告訴WEB服務器自己接受什么介質類型,*/* 表示任何類型,type/* 表示該類型下的所有子類型;
2)Accept-Charset: 瀏覽器申明自己接收的字符集
Accept-Encoding:瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法 (gzip,deflate)
3)Accept-Language: 瀏覽器申明自己接收的語言。語言跟字符集的區別:中文是語言,中文有多種字符集,比如big5,gb2312,gbk等等。
4)Authorization: 當客戶端接收到來自WEB服務器的 WWW-Authenticate 響應時,該頭部來回應自己的身份驗證信息給WEB服務器。
5)Connection:表示是否需要持久連接。close(告訴WEB服務器或者代理服務器,在完成本次請求的響應后,斷開連接,
不要等待本次連接的后續請求了)。keep-alive(告訴WEB服務器或者代理服務器,在完成本次請求的響應后,保持連接,等待本次連接的后續請求)。
6)Referer:發送請求頁面URL。瀏覽器向 WEB 服務器表明自己是從哪個 網頁/URL 獲得/點擊 當前請求中的網址/URL。
7)User-Agent: 瀏覽器表明自己的身份(是哪種瀏覽器)。
8)Host: 發送請求頁面所在域。
9)Cache-Control:瀏覽器應遵循的緩存機制。
no-cache(不要緩存的實體,要求現在從WEB服務器去取)
max-age:(只接受 Age 值小於 max-age 值,並且沒有過期的對象)
max-stale:(可以接受過去的對象,但是過期時間必須小於 max-stale 值)
min-fresh:(接受其新鮮生命期大於其當前 Age 跟 min-fresh 值之和的緩存對象)
10)Pramga:主要使用 Pramga: no-cache,相當於 Cache-Control: no-cache。
11)Range:瀏覽器(比如 Flashget 多線程下載時)告訴 WEB 服務器自己想取對象的哪部分。
12)Form:一種請求頭標,給定控制用戶代理的人工用戶的電子郵件地址。
13)Cookie:這是最重要的請求頭信息之一
以上僅列出了我見過的請求頭部,歡迎指正和補充!
3、響應頭部
1)Age:當代理服務器用自己緩存的實體去響應請求時,用該頭部表明該實體從產生到現在經過多長時間了。
2)Accept-Ranges:WEB服務器表明自己是否接受獲取其某個實體的一部分(比如文件的一部分)的請求。bytes:表示接受,none:表示不接受。
3) Cache-Control:服務器應遵循的緩存機制。
public(可以用 Cached 內容回應任何用戶)
private(只能用緩存內容回應先前請求該內容的那個用戶)
no-cache(可以緩存,但是只有在跟WEB服務器驗證了其有效后,才能返回給客戶端)
max-age:(本響應包含的對象的過期時間)
ALL: no-store(不允許緩存)
4) Connection: 是否需要持久連接
close(連接已經關閉)。
keepalive(連接保持着,在等待本次連接的后續請求)。
Keep-Alive:如果瀏覽器請求保持連接,則該頭部表明希望 WEB 服務器保持連接多長時間(秒)。例如:Keep-Alive:300
5)Content-Encoding:WEB服務器表明自己使用了什么壓縮方法(gzip,deflate)壓縮響應中的對象。 例如:Content-Encoding:gzip
6)Content-Language:WEB 服務器告訴瀏覽器自己響應的對象的語言。
7)Content-Length:WEB 服務器告訴瀏覽器自己響應的對象的長度。例如:Content-Length: 26012
8)Content-Range:WEB 服務器表明該響應包含的部分對象為整個對象的哪個部分。例如:Content-Range: bytes 21010-47021/47022
9)Content-Type:WEB 服務器告訴瀏覽器自己響應的對象的類型。例如:Content-Type:application/xml
10)Expired:WEB服務器表明該實體將在什么時候過期,對於過期了的對象,只有在跟WEB服務器驗證了其有效性后,才能用來響應客戶請求。
11) Last-Modified:WEB 服務器認為對象的最后修改時間,比如文件的最后修改時間,動態頁面的最后產生時間等等。
12) Location:WEB 服務器告訴瀏覽器,試圖訪問的對象已經被移到別的位置了,到該頭部指定的位置去取。
13)Proxy-Authenticate: 代理服務器響應瀏覽器,要求其提供代理身份驗證信息。
14)Server: WEB 服務器表明自己是什么軟件及版本等信息。
15)Refresh:表示瀏覽器應該在多少時間之后刷新文檔,以秒計。