Http協議 請求報文和響應報文

2022-05-10 12:42:08 字數 2899 閱讀 7528

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層(傳輸層,應用層)來完成的,在tcp/ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.

在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對http報文不熟悉,在使用httpservletrequest很多方法的時候,就會陷入懵逼.

http報文分為請求報文和響應報文.

請求報文分為三部分:首行,請求頭,請求體.

首行包括:請求型別,url,http版本.

請求頭部儲存一些鍵值對的屬性.

請求體儲存具體內容,一般為post型別的引數.

下面是對各部分的簡要描述:

1、方式(method):客戶端希望伺服器對資源執行的動作,是乙個單獨的詞,比如,get、post或head

2、請求url(request-url):要直接與伺服器進行對話,只要請求url是資源的絕對路徑就可以了,伺服器可以假定自己是url的主機/埠

3、版本(version):報文所使用的http版本。其格式:http/《主要版本號》.《次要版本號》

4、狀態碼(status-code):狀態碼是三位數字,描述了請求過程中所發生的情況。每個狀態碼的第一位數字都用於描述狀態的一般類別(比如,「成功」、「出錯」等等)

5、原因短語(reason-phrase):數字狀態碼的可讀版本,包含行終止序列之前的所有文字。原因短語只對人類有意義,因此,儘管響應行http/1.0 200 not ok和http/1.0 200 ok中原因短語的含義不同,但同樣都會被當作成功指示處理

6、頭部(header):可以有零個或多個頭部,每個首部都包含乙個名字,後面跟著乙個冒號(:),然後是乙個可選的空格,接著是乙個值,最後是乙個crlf首部是由乙個空行(crlf)結束的,表示了頭部列表的結束和實體主體部分的開始

7、實體的主體部分(entity-body):實體的主體部分包含乙個由任意資料組成的資料塊,並不是所有的報文都包含實體的主體部分,有時,報文只是以乙個crlf結束。

響應報文也由三部分組成,首行,響應頭,響應體.

首行分為報文協議及版本,響應碼及狀態描述

通常來說,web 伺服器返回 200 的響應碼,意思是,「我已經完成了你要求我做的事情,一切都正常」。響應碼總是乙個三位數字的代號,web 應用在每個響應的同時都傳送乙個這樣的代號,表明給定的請求的結果。響應碼 200 字面意思是「ok」,是響應乙個 get 請求大多情況下都使用的代號。然而對於 post 請求, 可能會有 204(「no content」)傳送回來,意思是「一切都正常,但是我不準備向你顯示任何東西」。

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層(傳輸層,應用層)來完成的,在tcp/ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.

在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對http報文不熟悉,在使用httpservletrequest很多方法的時候,就會陷入懵逼.

http報文分為請求報文和響應報文.

請求報文分為三部分:首行,請求頭,請求體.

首行包括:請求型別,url,http版本.

請求頭部儲存一些鍵值對的屬性.

請求體儲存具體內容,一般為post型別的引數.

下面是對各部分的簡要描述:

1、方式(method):客戶端希望伺服器對資源執行的動作,是乙個單獨的詞,比如,get、post或head

2、請求url(request-url):要直接與伺服器進行對話,只要請求url是資源的絕對路徑就可以了,伺服器可以假定自己是url的主機/埠

3、版本(version):報文所使用的http版本。其格式:http/《主要版本號》.《次要版本號》

4、狀態碼(status-code):狀態碼是三位數字,描述了請求過程中所發生的情況。每個狀態碼的第一位數字都用於描述狀態的一般類別(比如,「成功」、「出錯」等等)

5、原因短語(reason-phrase):數字狀態碼的可讀版本,包含行終止序列之前的所有文字。原因短語只對人類有意義,因此,儘管響應行http/1.0 200 not ok和http/1.0 200 ok中原因短語的含義不同,但同樣都會被當作成功指示處理

6、頭部(header):可以有零個或多個頭部,每個首部都包含乙個名字,後面跟著乙個冒號(:),然後是乙個可選的空格,接著是乙個值,最後是乙個crlf首部是由乙個空行(crlf)結束的,表示了頭部列表的結束和實體主體部分的開始

7、實體的主體部分(entity-body):實體的主體部分包含乙個由任意資料組成的資料塊,並不是所有的報文都包含實體的主體部分,有時,報文只是以乙個crlf結束。

響應報文也由三部分組成,首行,響應頭,響應體.

首行分為報文協議及版本,響應碼及狀態描述

通常來說,web 伺服器返回 200 的響應碼,意思是,「我已經完成了你要求我做的事情,一切都正常」。響應碼總是乙個三位數字的代號,web 應用在每個響應的同時都傳送乙個這樣的代號,表明給定的請求的結果。響應碼 200 字面意思是「ok」,是響應乙個 get 請求大多情況下都使用的代號。然而對於 post 請求, 可能會有 204(「no content」)傳送回來,意思是「一切都正常,但是我不準備向你顯示任何東西」。

重溫Http協議 請求報文和響應報文

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...

重溫Http協議 請求報文和響應報文

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...

重溫Http協議 請求報文和響應報文

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...