1. 程式人生 > 其它 >HTTP 報文頭

HTTP 報文頭

報文頭

HTTP的報文頭大體可以分為四類,分別是

  • 通用報文頭
  • 請求報文頭
  • 響應報文頭
  • 實體報文頭
    在http/1.1裡一共規範了47種報文頭欄位

POST /webTours/login.pl HTTP/1.1 // 請求方法 請求uri地址,更多的時候也是url 協議名稱與版本
HOST:10.223.12.221:1080 // host地址
Connection:keep-alive
Content-Length:138
Pragma: no-cache
Cache-Control: no-cache
Origin: http://10.223.12.221:1080
Upgrade-Insecure-Requests:1
Content-Type:application/x-www-form-urlencoded
User-Agent:mozila/5.0 ...
Accept:text/html,application...
Referer:

http://10.223.12.221:1080/webTours/nav.pl?in=home
Accept-Encoding:gzip,deflate
Accept-Language:zh-CN,zh;q=0.9
Cookie:MSO=SID&1565154821

通用報文頭

Cache-Control: 控制快取的行為
Connection:逐跳首部、連線的管理
Date:建立報文的日期時間
Pragma: 報文指令
Trailer:報文末端的首部一覽
Upgrade:升級為其他協議
Via:代理伺服器的相關資訊
Warning:錯誤通知

請求報文頭

Accept:使用者代理可處理的媒體型別
Accept-Charset:優先的字符集
Accept-Encoding:優先的內容編碼
Accept-Language:優先的語言
Authorization:Web認證資訊
Expect:期待伺服器特定行為
From:使用者的電子郵箱地址
Host:請求資源所在伺服器
If-Match:比較實體標記(ETag)
If-Modified-Since:比較資源的更新時間
If-None-Match: 比較實體標記
If-Range:資源未更新時傳送實體Byte的範圍請求
If-Unmodified-Since:比較資源的更新時間(與if-m-s相反)
Nax-Forwards:最大傳輸逐跳數
Proxy-Authorization:代理伺服器要求客戶端的認證資訊
Range:實體的位元組範圍請求
Referer:對請求中URI的原始獲取
TE:傳輸編碼的優先順序
User-Agent:HTTP客戶端程式的資訊

響應報文頭

Accept-Ranges:是否接受位元組範圍請求
Age:推算資源建立經過時間
ETag:資源的匹配資訊
Location:令客戶端重定向至指定URI
Proxy-Authenticate:代理伺服器對客戶端的認證資訊
Retry-After 對再起發起請求的時機要求
Server:HTTP伺服器的安裝資訊
Vary:代理伺服器快取的管理資訊
WWW-Authenticate:伺服器對客戶端的認證資訊

實體報文頭

Allow: 資源可支援的HTTP方法
Content-Encoding:實體主體使用的編碼方式
Content-Length:實體主體的大小(單位是位元組)
Content-Location:替代對應資源的uri
Content-MD5:實體主題的報文摘要
Content-Range:實體主題的位置範圍
Content-Type:實體主體的媒體型別
Expires:實體主體過期的日期時間
Last-Modified: 資源的最後修改日期時間

示例解釋

Accept
作用:瀏覽器端可以接受的媒體型別,如text/html
如果伺服器無法返回一個text/html型別的資料,伺服器應該返回一個406錯誤(Non Acceptable)
值:
/ 代表瀏覽器可以處理所有型別
權重值 q=(範圍是0~1) 首先返回權重值最高的媒體型別

Accept-Encoding
作用:瀏覽器宣告自己接受的編碼方法,通常指定壓縮方法,是否支援壓縮,支援什麼壓縮方法
(gzip,defalte)

Accept-Language
作用:瀏覽器宣告自己接收的語言,我在某個國家,希望看到不同的語言
Accept-Language:zh-cn,zh;q=0.7,en-us,en;q=0.3 優先返回中文版,其次是英文版

Connection
作用:
keep-alive:當一個網頁開啟完成後,客戶端和伺服器之間用於傳輸HTTP資料的TCP連線不會關閉
如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線(減少握手次數)
close:當一個請求完成後,C/S間的TCP連線會關閉,再次傳送請求,再次建立連線

Host
作用:請求報文頭用於指定被請求資源的Internet主機和埠號,它通常從HTTP URL中提取出來
即伺服器的主機和埠號
url: http://www.baidu.com:8080
HOST:www.baidu.com:8080

Referer
當瀏覽器向web伺服器傳送請求的時候迴帶上referer欄位,告訴伺服器我是從哪個頁面連結過來的
伺服器可以藉此獲得一些資訊用於處理

User-Agent
作用:
告訴HTTP伺服器,客戶端使用的作業系統和瀏覽器名稱和版本
很多情況下我們會通過User-Agent來判斷瀏覽器型別,從而進行不同的相容設計

Content-Type
作用:說明報文體內物件的媒體型別
text/html:HTML格式
text/plain:純文字格式
text/xml:xml格式
image/gif:gif格式
image/jpeg:jpg格式
image/png:png格式
application/xhtml+xml:XHTML格式
application/xml:XML資料格式
application/atom+xml:Atom XML聚合格式
application/json:json資料格式
application/pdf:pdf格式
application/msword:word文件格式
application/octet-stream:二進位制流資料(如常見的檔案下載)
application/x-www-form-urlencoded:表單提交

這就是我們說http靈活的原因,支援很多種格式