HTTP協議 HTTP首部總結

2021-08-20 18:07:00 字數 3380 閱讀 9094

首部和方法配合工作,共同決定了客戶端和伺服器能做什麼事情。http協議的請求和響應報文中必定含有http首部,首部內容為客戶端和伺服器分別處理請求和響應提供所需要的資訊,對客戶端使用者來說,這些資訊中的大部分內容都無須親自檢視,因此平時在使用web的過程中感受不到它。

http請求報文由方法、uri、http版本、http首部欄位等部分構成,具體構成如下圖所示:

http響應報文由http版本、狀態碼(數字和原因短語)、http首部欄位3部分組成

在報文眾多的字段當中,http首部字段包含的資訊最為豐富。首部字段同時存在於請求和響應報文內,並涵蓋http報文相關的內容資訊。

因為http版本或擴充套件規範的變化,首部欄位可支援的字段內容略有不同。

1.1、http首部字段傳遞重要資訊

http首部欄位是構成http報文的要素之一,在客戶端和伺服器之間以http協議進行通訊的過程中,無論是請求還是響應都會使用首部字段,它能起到傳遞額外重要資訊的作用。

使用首部欄位是為了給瀏覽器和伺服器提供報文主體大小、所使用的語言、認證資訊等內容。

1.2、http首部字段結構

http首部欄位由首部欄位名和字段值構成,格式為:

首部欄位名:字段值

另外字段值對應的單個http首部字段可以有多個值,如:

keep-alive:timeout=15,max=100

http首部根據實際用途被分為以下5種型別:

2.1、通用首部

這是客戶端和伺服器都可以使用的通用首部。可以在客戶端、伺服器和其他應用程式之間提供一些非常有用的通用功能。比如,date首部就是乙個通用首部,每一端都可以用它來說明構建報文的時間和日期:

date:tue, 12 jun 2018 14:48:00 gmt

下表列出了通用的資訊性首部:

首部欄位名

說明cache-control

控制快取的行為

connection

允許客戶單和伺服器指定與請求/響應鏈結有關的選項

date

建立報文的日期時間

pragma

報文指令

trailer

如果報文採用了分塊傳輸編碼,就可以用這個首部列出位於報文拖掛部分的首部集合

transger-encoding

告知接受端為了保證報文的可靠傳輸,讀報文採用了什麼編碼方式。

upgrade

給出了傳送端可能想要「公升級」使用的新版本或協議。

via顯示了報文經過的中間節點(**、閘道器)

warning

錯誤通知

通用首部字段具體介紹可以參考

2.2請求首部

請求首部是只在請求報恩中有意義的首部。用於說明是誰或什麼在傳送請求、請求源自何處,或者客戶端的洗好及能力。伺服器可以根據請求首部給出的客戶端資訊,試著為客戶端提供更好的響應。

請求首部字段如下:

首部欄位名

說明accept

使用者**可處理的**型別

accept-charset

優先的字符集

accept-encoding

優先的內容編碼

accept-language

優先的語言(自然語言)

authorization

web認證資訊

expect

期待伺服器的特定行為

from

使用者的電子郵箱位址

host

請求資源所在伺服器

if-match

比較實體標記(etag)

if-modified-since

比較資源的更新時間

if-none-match

比較實體標記(與if-match相反)

if-range

資源未更新時傳送實體byte的範圍請求

if-unmodified-since

比較資源的更新時間(與if-modified-since相反)

max-forwards

最大傳輸逐跳數

proxy-authorization

**伺服器要求客戶端的認證資訊

range

實體的位元組範圍請求

referer

對請求中uri的原始獲取方

te傳輸編碼的優先順序

user-agent

http客戶端程式的資訊

請求首部字段具體介紹可以參考

2.3響應首部

響應首部欄位是由伺服器端向客戶端返回響應報文中所使用的字段,用於補充響應的附加資訊、伺服器資訊,以及對客戶端的附加要求等資訊。這些首部有助於客戶端處理響應,並在將來發起更好的請求。

首部欄位名

說明accept-range

是否接受位元組範圍請求

age推算資源建立經過時間

etag

資源的匹配資訊

location

令客戶端重定向至指定uri

proxy-authorization

**伺服器對客戶端的認證資訊

retry-after

對再次發起請求的時機要求

server

http伺服器的安裝資訊

vary

**伺服器快取的管理資訊

www-authenticate

伺服器對客戶端的認證資訊

響應首部字段具體介紹可以參考

2.4、實體首部

有很多首部可以用來描述http報文的復合。由於請求和響應報文中都可能包含實體部分,所以在這兩種型別的報文中都可能出現這些首部。

實體首部提供了有關實體及其內容的大量資訊,從有關物件型別的資訊,到能夠對資源使用的各種有效的請求方法。總之,實體首部可以告知報文的接受者它在對什麼進行處理。

首部欄位名

說明allow

資源可支援的http方法

content-encoding

實體主體使用的編碼方式

content-language

實體主體的自然語言

content-length

實體主體的大小(單位:位元組)

content-location

替代對應資源的uri

content-md5

實體主體的報文摘要

content-range

實體主體的位置範圍

contenr-type

實體主體的**型別

expires

實體主體過期的日期時間

last-modified

資源的最後修改日期時間

響應首部字段具體介紹可以參考

HTTP協議 HTTP實體首部

有很多首部可以用來描述http報文的復合。由於請求和響應報文中都可能包含實體部分,所以在這兩種型別的報文中都可能出現這些首部。首部欄位名 說明allow 資源可支援的http方法 content encoding 實體主體使用的編碼方式 content language 實體主體的自然語言 cont...

Http協議基礎之HTTP響應首部字段

響應首部欄位是由伺服器端向客戶端返回響應報文中所使用的字段,用於補充響應的附加資訊 伺服器資訊,以及對客戶端的附加要求等資訊。accept ranges bytes 首部字段 accept ranges 是用來告知客戶端伺服器是否能處理範圍請求,以指定獲取伺服器端某個部分的資源。可指定的字段值有兩種...

http協議(六)報文首部

http請求和響應報文內容比較多,會分為大概四部分更新,最近比較忙,沒太多時間整理 首先來看看報文結構吧 1 http請求報文 http請求報文由方法 uri http版本。http首部欄位等構成 下面給大家示例乙個訪問my view page.php的請求報文首部資訊 關於報文的首部資訊,稍微詳解...