HTTP/1.1協(xié)議知識(shí)小結(jié)

1.關(guān)于HTTP協(xié)議

? HTTP協(xié)議(HyperText Transfer Protocol)超文本傳輸協(xié)議。首先要明白HTTP是基于TCP的協(xié)議,先建立好TCP連接,才能發(fā)送HTTP請求。并且1.1版本默認(rèn)開啟Keep-Alive,這樣建立的TCP連接可以在多次請求中復(fù)用。還要明白HTTP是無狀態(tài)有會(huì)話的,使用Cookies可以創(chuàng)建有狀態(tài)的會(huì)話。在請求頭方面1.1版本增加更多的請求頭和響應(yīng)頭信息用以增強(qiáng)HTTP的功能例如host主機(jī)頭。

2.HTTP的請求報(bào)文

HTTP的請求報(bào)文主要由請求行,請求頭(請求首部),請求數(shù)據(jù)(正文主體)組成。

第一部分:請求行

| 請求行字段 | 說明 | 其它 |
| ---------------- | --------------- --------------- | ------------------------------------------------------------ |
| GET(RequestMethod) | 通常用于請求服務(wù)端上的某個(gè)資源 | 比如GET請求一個(gè)基于HTTP的API接口獲得JSON字符串,字符串里面是一個(gè)列表,列表中包含你想要獲取的信息 |
| POST(RequestMethod) | 主動(dòng)告訴服務(wù)端一些信息,將客戶端的信息提交到服務(wù)端 | 比如POST請求一個(gè)基于HTTP的API接口,提交想要提交的信息 |
| PUT(RequestMethod) | 向指定的資源位置上傳最新的信息 | 暫無 |
| DELETE(RequestMethod) | 請求服務(wù)端刪除Request-URI指定的資源 | 暫無 |
| URL | 統(tǒng)一資源定位符 | 要獲取的資源的準(zhǔn)確路徑,由協(xié)議,主機(jī)IP或域名端口號, 具體目錄地址構(gòu)成 |
| 協(xié)議版本 | HTTP協(xié)議的版本號 | 比如HTTP/1.1 |

第二部分:請求頭
請求頭常見字段 說明
Host 告知服務(wù)端,請求的資源所在的互聯(lián)網(wǎng)主機(jī)名和端口號
User-Agent 會(huì)將創(chuàng)建請求的的瀏覽器和用戶代理名稱傳遞給服務(wù)端
Accept 用來告知服務(wù)端,用戶代理所支持的能夠處理的流媒體的類型以及相對優(yōu)先級
Accept-Encoding 用來告知服務(wù)端,用戶代理所支持的內(nèi)容編碼以及優(yōu)先順序
Accept-Language 用來告訴服務(wù)端,用戶能夠處理的自然語言集
If-Modified-Since 告知服務(wù)端若If-Modified-Since字段的值早于資源更新時(shí)間則希望服務(wù)端處理該請求,反之返回304 Not Modified
Accept-Charset 優(yōu)先的字符集
第三部分:請求數(shù)據(jù)
常見字段 說明
Allow 資源可支持的HTTP方法
Content-Encoding 實(shí)體使用的編碼格式
Content-Language 實(shí)體使用的自然語言
Content-Length 實(shí)體的大小
Content-Location 替代對應(yīng)資源的URL
Content-MD5 實(shí)體的報(bào)文摘要
Content-Range 實(shí)體的位置范圍
Content-Type 實(shí)體的媒體類型
Expires 實(shí)體主體的過期時(shí)間
Last-Modified 資源的最后修改時(shí)間

3.HTTP的響應(yīng)報(bào)文

HTTP響應(yīng)報(bào)文主要由狀態(tài)行,響應(yīng)首部,響應(yīng)數(shù)據(jù)(正文實(shí)體)

第一部分:狀態(tài)行

狀態(tài)行主要包含協(xié)議的版本號,狀態(tài)返回碼,狀態(tài)信息。

常見的HTTP狀態(tài)返回碼 對應(yīng)的狀態(tài)信息 說明 其它
200 OK 請求成功 對成功的定義取決于HTTP的請求方法
301 Moved Permanently 永久移動(dòng),被請求的資源永久的移動(dòng)到了新的URL 永久跳轉(zhuǎn)
304 Not Modified 客戶端所請求的資源未修改,服務(wù)器返回此狀態(tài)碼 暫無
400 Bad Request 客戶端請求錯(cuò)誤,服務(wù)器無法理解 語義有誤或者請求參數(shù)有誤
401 Unauthorized 當(dāng)前請求需要用戶進(jìn)行身份驗(yàn)證 暫無
402 Payment Required 保留 暫無
403 Forbidden 服務(wù)器理解了客戶端的請求,但是拒絕執(zhí)行它 有可能是服務(wù)器或服務(wù)的權(quán)限設(shè)置不當(dāng)
404 Not Found 請求失敗,服務(wù)器無法根據(jù)客戶端的請求找到相應(yīng)資源 有可能是客戶端請求了服務(wù)器上不存在的資源或者路徑?jīng)]寫準(zhǔn)確
500 Internal Server Error 服務(wù)器內(nèi)部錯(cuò)誤 服務(wù)器遇到了不知道如何處理的情況,可能是服務(wù)器的設(shè)置或者內(nèi)部程序的問題
501 Not Implemented 服務(wù)器不支持客戶端的請求方法 暫無
502 Bad Gateway 作為網(wǎng)關(guān)或代理的服務(wù)器嘗試請求時(shí),從遠(yuǎn)端獲取到一個(gè)無效的響應(yīng) 可能是反向代理服務(wù)器下面的節(jié)點(diǎn)出問題
503 Service Unavailable 服務(wù)器由于超載或維護(hù),暫時(shí)無法處理客戶端的請求 ,不可用 也可能是反向代理服務(wù)器后面沒有可以提供服務(wù)的節(jié)點(diǎn)
504 Gateway Time-out 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請求 可能是反向代理服務(wù)器后面的服務(wù)器過載導(dǎo)致沒有在指定的時(shí)間內(nèi)返回?cái)?shù)據(jù)
第二部分:響應(yīng)首部
常見首部字段 說明
ETag 資源的匹配信息
Server HTTP服務(wù)器的安裝信息
Vary 代理服務(wù)器緩存的管理信息
第三部分:正文實(shí)體

正文實(shí)體的首部字段可以參考HTTP請求報(bào)文中的正文實(shí)體首部

還有一些通用的首部字段如下
字段名 說明
Cache-Control 控制緩存的行為
Connection 逐跳首部,連接的管理
Date 創(chuàng)建報(bào)文的日期時(shí)間
Pragma 報(bào)文指令
Upgrade 升級為其它協(xié)議
Via 代理服務(wù)器的相關(guān)信息
Warning 錯(cuò)誤通知

3.補(bǔ)充說明

關(guān)于狀態(tài)碼

204:成功處理請求但是響應(yīng)報(bào)文不包含實(shí)體的主體部分。
206:通過發(fā)送范圍請求頭Range抓取到了資源的部分?jǐn)?shù)據(jù)。(partial content)
301:永久重定向,永久跳轉(zhuǎn)。
302:臨時(shí)重定向,臨時(shí)跳轉(zhuǎn)。
304:服務(wù)端只返回響應(yīng)頭。
400:請求的報(bào)文中存在錯(cuò)誤。
401:求需要認(rèn)證或認(rèn)證失敗導(dǎo)致。
403:可能是訪問了沒有權(quán)限的資源導(dǎo)致的禁止訪問。
404:訪問路徑錯(cuò)誤或訪問的資源已經(jīng)不存在,服務(wù)器找不到客戶端請求的指定頁面。
412:客戶端請求的etag和服務(wù)端的不一致。
416:所請求的范圍無法滿足。
499:服務(wù)器主動(dòng)關(guān)閉客戶端連接。
500:內(nèi)部服務(wù)器錯(cuò)誤,一般是服務(wù)器的設(shè)置或內(nèi)部程序錯(cuò)誤導(dǎo)致。
502:壞的網(wǎng)關(guān),一般是代理服務(wù)器請求后端時(shí)后端服務(wù)不可用或沒有完成響應(yīng)導(dǎo)致的。
503:當(dāng)前服務(wù)不可用,可能是服務(wù)器超載或停機(jī)或反向代理服務(wù)器后端無可用服務(wù)器。
504:網(wǎng)關(guān)超時(shí)一般是后端服務(wù)器沒有在指定的時(shí)間完成處理請求。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文是《圖解HTTP》讀書筆記的第二篇,主要包括此書的第六章內(nèi)容,因?yàn)榈诹碌膬?nèi)容較多,而且比較重要,所以單獨(dú)寫為...
    lijiankun24閱讀 1,499評論 0 6
  • 作者:李成文;標(biāo)簽: http首部 HTTP報(bào)文首部 HTTP協(xié)議的請求和響應(yīng)報(bào)文中必定包含HTTP首部。首部內(nèi)容...
    廣州蘆葦科技web前端閱讀 1,208評論 0 0
  • Web 頁面的實(shí)現(xiàn) Web 基于 HTTP 協(xié)議通信 客戶端(Client)的 Web 瀏覽器從 Web 服務(wù)器端...
    毛圈閱讀 1,312評論 0 2
  • HTTP 首部 HTTP 報(bào)文首部 HTTP 協(xié)議的請求和響應(yīng)報(bào)文中必定包含 HTTP 首部。首部內(nèi)容為客 戶端和...
    Gu_Ran閱讀 838評論 0 3
  • 寥寥星天方初醒, 似有微露映人歸。 十里紅妝夢十里, 相思紅豆種相思。 小詩一首,請斧正
    山有木犀閱讀 292評論 0 1

友情鏈接更多精彩內(nèi)容