1. 程式人生 > >http 請求頭部解析

http 請求頭部解析

nec OS 約束 客戶端 targe HA 合規 6.0 conn

作者:知乎用戶
鏈接:https://www.zhihu.com/question/42696895/answer/109035792
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

最近研究了HTTP協議,所以在這裏回答下這個問題,首先回答題主的問題,請求頭有什麽作用?我覺得請求頭能反映給服務端以下信息:

1、請求類型
我們常見的請求類型有Get和Post兩種,而這個信息在HTTP請求報文的第一行即請求行中就可以得到。

2、請求地址
請求地址告訴服務端當前請求來自哪裏,例如"/"表示的是服務器根目錄,對一個靜態網站而言,如果存在index.html則它指向該網頁;對一個動態網站而已,如果存在index.php則它指向該網頁。

3、請求參數
客戶端和服務器的通信最終是要落實到具體數據的傳遞上來的,所以通過請求報文我們能夠獲得客戶端傳遞的參數並對其進行處理,通常Get類型參數在請求行、而Post類型參數在消息體中。

4、請求約束
如果說1、2、3是通信核心要素,那麽接下來這些我們可以稱其為細節要素。如題主所言,在客戶端發起請求以後,到底服務端該以什麽樣的形式來返回給客戶端?這部分內容定義在請求頭部中,具體可以看下面的報文實例。

————————————————————
下面給出一段請求報文:
GET /?num1=23&num2=12 HTTP/1.1
Accept: text/html, application/xhtml+xml, image/jxr, */*
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586
Accept-Encoding: gzip, deflate
Host: localhost:4040
Connection: Keep-Alive
Cookie: _ga=GA1.1.1181222800.1463541781

在這段報文中,它可以分為三部分,第一部分,請求行即第一行,在這裏我們獲得請求類型、請求參數、請求地址三個信息。

第二部分,我們稱為請求頭部,這裏定義了如Accept、AccepLanguage等字段,這是我們這裏所說的請求約束。

第三部分,消息體,它是一個可選的內容,和第二部分間有一個空行,當采用Post類型請求時這裏將記錄客戶端傳遞的參數。

我覺得這樣應該可以解答題主的問題了,關於頭部字段具體表示什麽含義,這些可以通過搜索引擎自己來了解,因為參數非常多啦,最後請允許我安利我最近寫的關於HTTP的博客~\(≧▽≦)/~

總而言之,這是一個客戶端和服務端進行溝通的問題,雙方按照各自的要求符合規律地去做好事情是我們期望的結果,可如果雙方有一方想要任性你能有什麽辦法啊……

http 請求頭部解析