Http經常使用頭部整理

Http經常使用頭部整理

http協議html

HTTP是一個屬於應用層的面向對象的協議,其主要特色爲:  
1. 支持客戶端/服務器模式;
2. 簡單快速的通訊;
3. HTTP容許傳輸任意類型的數據對象。類型由Content-Type加以標記。
4. 無鏈接、無狀態協議;

http報文web

用於HTTP協議交互的信息被稱爲HTTP報文。請求端(客戶端)的HTTP報文叫作請求報文,響應端(服務器端)的叫作響應報文。瀏覽器

請求報文和響應報文的首部內容由如下數據組成。緩存

  • 請求行 包含用於請求的方法,請求URI和HTTP版本;服務器

  • 狀態行 包含響應結果的狀態碼,緣由短語和Http版本;session

  • 首部字段 通常有4種首部,分別是:通用首部、請求首部、響應首部和實體首部。app

  • 其餘(Cookie等)ui

HTTP協議的請求和響應報文中一定包含HTTP首部。首部內容爲客戶端和服務器分別處理請求和響應提供 所須要的信息。編碼

下來對HTTP的經常使用首部字段進行詳細介紹url

HTTP首部字段根據實際用途被分爲如下4種類型。

  • 通用首部字段(General Header Fields)請求報文和響應報文兩方都會使用的首部。

  • 請求首部字段(Request Header Fields)從客戶端向服務器端發送請求報文時使用的首部。補充了請求的附加內容、客戶端信息、響應內容相關優先級等信息。

  • 響應首部字段( Response Header Fields)從服務器端向客戶端返回響應報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容信息。

  • 實體首部字段(Entity Header Fields)針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更新時間等與實體有關的信息。

HTTP/1.1 首部字段一覽

通用首部字段

首部字段名 說明
Cache-Control 控制緩存的行爲
Connextion 逐跳首部、鏈接的管理
Date 建立報文的日期時間
Pragma 報文指令
Transfer-Encoding 指定報文主體的傳輸編碼方式
Cache-control: max-age=5 
表示當訪問此網頁後的5秒內再次訪問不會去服務器 

Cache-Control: no-cache:這個很容易讓人產生誤解,令人誤覺得是響應不被緩存。
實際上Cache-Control: no-cache是會被緩存的,只不過每次在向客戶端(瀏覽器)提供響應數據時,緩存都要向服務器評估緩存響應的有效性。 

Cache-Control: no-store:這個纔是響應不被緩存的意思。 

Pragma: no-cache:跟Cache-Control: no-cache相同,Pragma: no-cache兼容http 1.0 ,Cache-Control: no-cache是http 1.1提供的。 

所以,Pragma: no-cache能夠應用到http 1.0 和http 1.1,而Cache-Control: no-cache只能應用於http 1.1.
另外,客戶端不帶這個頭部請求的話,若是使用本地緩存的話,返回狀態碼爲304。
若是請求頭中有cache-control:no-cache頭部。則不使用本地緩存,返回狀態碼不爲304(通常爲200)。
這裏,剛好解決了我以前的一個問題:
http://blog.chinaunix.net/uid-1757778-id-5753705.html

請求首部字段

首部字段名 說明
Accept 用戶代理可處理的媒體類型
Accept-Charset 優先的字符集
Accept-Encoding 優先的內容編碼
Accept-Language 優先的語言
Host 指定資源所在服務器
If-Match 比較實體標記(ETag)
If-Modified-Since 比較資源的更新時間
If-None-Match 比較實體標記(與If-Match相反)
Referer 對請求中URI的原始獲取方
User-Agent Http客戶端程序的信息

Accept屬於請求頭,表示客戶端但願接收的數據類型。
這裏有對If-Modified-Since和Last-Modified的一些不錯的解釋,能夠點擊這裏查看
合理使用If-None-Match和If-Modified-Since頭,能夠減小流量帶寬。

響應首部字段

首部字段名 說明
Accept-Range 是否接受字節範圍請求
ETag 資源的匹配信息
Location 另客戶端重定向至指定URI
Server Http服務器的安裝信息
Vary 代理服務器緩存的管理信息

實體首部字段

首部字段名 說明
Allow 資源可支持的Http方法
Content-Encoding 實體主體適用的編碼方式
Content-Language 實體主體的天然語言
Content-Length 實體主體的大小(字節)
Content-Location 替代對應資源的URI
Content-Type 實體主體的媒體類型
Expires 實體主體過時的日期時間
Last-Modified 資源的最後修改日期時間

從以上這些以外,還有好比Cookie、Set-Cookie和Content-Disposition等在其餘RFC中定義的首部字段也常常被用到。
下邊爲請求一個網頁的頭部信息實例:

General:
Request URL:http://blog.csdn.net/muzizongheng/article/details/46795243
Request Method:GET
Status Code:200 OK
Remote Address:59.110.88.38:80
Referrer Policy:unsafe-url

Response Header:

Cache-Control:private, max-age=0, must-revalidate
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Mon, 17 Jul 2017 11:16:17 GMT
ETag:W/"ac50f3b564a78d9d789c1aa58f6ae866"
Keep-Alive:timeout=20
Server:openresty
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP 5.4.28

Request Headers:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8  
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:uuid_tt_dd=144036427222764724_20151210; bdshare_firstime=1449739242207; UN=qq_32072475; UE=""; BT=1487900862896; uuid=2f6e329e-9f88-4865-8122-f9b62fdbb659; avh=62976388%2c46795243; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1500288834,1500289008,1500290189,1500290200; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1500290200; dc_tos=ot8fbt; dc_session_id=1500290201006
Host:blog.csdn.net
If-None-Match:W/"ac50f3b564a78d9d789c1aa58f6ae866"
Referer:https://www.baidu.com/link?url=Wu7VlsW2GRUpclU_zgZy9v_qJkZl1rHrjCTURquEV9PS0fEb1W5xkKsGoufmZVycG5aA8jlSdONEoM8d8mMbuP7vx91QgDaeU5eN7ty9WK7&wd=&eqid=ec2de144000058ef00000006596c9c69
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
相關文章
相關標籤/搜索