HTTP 協議深入理解(一)

2021-10-25 05:33:38 字數 3623 閱讀 5758

在 聊聊 http 協議的知識點 中介紹了 http 協議主要負責服務端和客戶端的資料傳輸,資料傳輸主要分為 2 塊:一是請求資料,客戶端向服務端請求資料;二是響應資料:服務端向客戶端響應資料,然而請求和響應都是通過請求報文和響應報文來完成的。今天我將帶大家了解 http 協議請求報文和響應報文的組成部分有哪些。

在 【http **】中將請求報文和響應報文主要分為 2 塊:報文首部和報文主題,具體如下圖所示:

為了方便理解,我將 http 請求報文和響應報文做了如下拆分:

http 請求報文組成部分:請求行、請求頭、請求體(請求正文),其中:

http 響應報文組成部分:響應行、響應頭、響應體(請求正文)其中:

如下所示就是 http 的請求報文。

請求行

get /s?wd=%e8%a5%bf%e7%ba%a2%e6%9f%bf%e7%82%92%e9%b8%a1%e8%9b%8b%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%9f& http/1.1
get:是 http 請求方法,表示獲取資源並且不會對資源做任何修改操作。

其他常見的http 方法有:

http/1.1:表示http協議版本是 1.1。

中間內容:搜尋的uri,url 解碼後的內容是wd=西紅柿炒雞蛋怎麼做?&

請求頭如下所示就是 http 的請求報文中請求頭的資訊。

cookie 和 connection: keep-alive 是http 協議重點要掌握的知識點。

cookie:設定請求的 cookie 資訊,http 協議是無狀態的協議,也就是說在http 協議中是不會對請求和響應做持久化。例如**登入資訊無法儲存問題,這個就是靠cookie解決的。

connection: keep-alive http 協議每次通訊就需要連線和斷開tcp 鏈結,這樣會造成大量的通訊的開銷。為解決這一問題,http 1.1 提出持久連線,只要任意一方沒有提出斷開連線,則保持tcp 連線狀態。如果想使用持久連線則需要宣告 connection: keep-alive。

請求體post 請求引數資訊會顯示在請求體中,因為這裡示例是get 請求,所以請求體沒有內容。

如下所示就是 http 的響應報文。

省略具體html 資訊

響應行

響應行包含 http 版本號、狀態碼、狀態碼原因短語。

http/1.1 200 ok
常見的狀態碼以及狀態碼原因短語如下:

響應頭響應頭和請求頭差不多,主要宣告響應的一些公共資訊引數。有些引數和請求頭是一樣的。

響應體本文主要講述了 http 協議由請求報文響應報文組成,其中請求報文包含了:請求行、請求頭、請求體,響應報文包含了:響應行、響應頭、響應體。需要注意的是http 協議是無狀態協議,但是可以通過cookie記錄狀態,還有就是http 協議通過持久連線減少通訊的開銷。

[1]【日】上野 宣著 **http

深入理解HTTP協議

當今最流行的http協議版本為http 1.1,本文內容均以此版本為準 一 報文 http協議的報文分為兩種,請求報文和響應報文 請求報文由4部分組成 1.起始行 2.請求頭 3.空行 4.請求體 響應報文也由4部分組成 1.起始行 2.響應頭 3.空行 4.響應體 其中起始行都是必須的,其他內容可...

深入理解HTTP協議

http協議 hypertext transfer protocol 超文字傳輸協議,它是web的核心。它由兩部分程式組成 乙個客戶機程式,和乙個伺服器程式,執行在不同的端系統中,通過http報文進行通訊。http協議定義了web客戶機如何向web伺服器請求web頁面,下圖描述了http請求 響應行...

Linux 深入理解HTTP協議

基本概念及作用 首先http協議屬於應用層協議,應用層協議就是我們程式設計師自己定協議,但如果每次都自己定麻煩並且很容易出錯,所以有了一些現成的 http,dns 等,所以大多是直接拿來用就行,而應用層的作用就是雙方達成某種約定,一段按照約定的協議傳送資料,另一端按照約定來解析資料,保證接收資料的一...