HTTP協議報文格式

2021-05-02 01:35:53 字數 3566 閱讀 2581

http協議(hypertext transfer protocol――超文字傳輸協議)瀏覽器端(客戶端)向web伺服器端訪問頁面的過程和http協議報文的格式。

基於http協議的客戶機訪問包括4個過程,分別是建立tcp套接字連線、傳送http請求報文、接收http應答報文和關閉tcp套接字連線:

1. 建立tcp套接字連線

客戶端與web伺服器建立tcp套接字連線,其中web端伺服器的位址可以通過網域名稱解析確定,web端的套接字偵聽埠一般是80。

2. 傳送http請求報文

客戶端向web服務端傳送請求報文,http協議的請求報文格式為:

請求訊息 = 請求行(實體頭資訊)crlf[實體內容]

請求行 = 方法 url http版本號 crlf

方法 = get|head|post|擴充套件方法

url = 協議名稱 + 宿主名 + 目錄與檔名

其中"crlf"表示回車換行。

"請求行"中的"方法"描述了對指定資源執行的動作,常用的方法"get"、"head"和"post"等3種,它們的含義如表15-8所示:

表15-8 http請求方法

取值

描述

get

從web

伺服器中獲取物件,不同型別的對

象將獲取不同的資訊,比如:

·檔案型別物件,獲取該檔案的內容。

·程式型別物件,獲取該程式執行的結果。

·資料庫查詢型別物件,獲取該查詢的結果。

head

要求伺服器查詢物件的元資訊。

post

從客戶端向

web伺服器傳送資料。

"實體頭資訊"中記載了報文的屬性,利用這些資訊可以實現客戶端與web伺服器之間的請求或應答,它包括報文的資料型別、壓縮方法、語言、長度、壓縮方法、最後一次修改時間、資料有效期等資訊。

實體內容是報文傳送的附加資訊,一般供post請求填寫。

get請求報文例子

乙個url為"http://www.zhiliaowang.com/toupiaoceshi.asp?name=朱雲翔"的get請求報文例子如下:

get http://www.zhiliaowang.com/toupiaoceshi.asp?name=朱雲翔 http/1.1

accept: */*

accept-language: zh-cn

accept-encoding: gzip, deflate

user-agent: mozilla/4.0 (compatible; msie 6.0;

windows nt 5.1; sv1; .net clr 2.0.50727)

host: www.zhiliaowang.com

connection: keep-alive

其中"/toupiaoceshi.asp?name=朱雲翔"是url資訊,語句"accept:*/*"及其後的語句是"實體頭資訊"。

注意:在語句"connection:keep-alive"下的空行是必須的。

post請求報文例子

下面是http協議中關於post請求報文例子,節自《中國聯合通訊公司短訊息閘道器系統介面協議(sgip)》v1.2版:

post /sp.cgi http/1.0         /* 請求行,服務程式為sp.cgi */

host: www.spserver.com      /* 以下為實體頭資訊 */

authorization: basic

=<4>           /* 以下為post請求的實體資訊 */

=<205502327125025327> /* 實體部分輸送報文 */

=<8613001125453>

=<168>

=

一般情況下,採用post報文傳送資訊的資料儲存在"實體"部分中。

3. 接收http應答報文

web伺服器處理客戶請求,並向客戶機傳送應答報文,http協議的應答報文格式為:

應答報文 = 狀態行(實體頭資訊)crlf [實體內容]

狀態行   = http版本號 狀態碼 原因敘述

狀態碼描述了web伺服器執行客戶機請求的狀態資訊,其取值含義如表15-8所示:

表15-8 http應答響應碼含義

取值

描述

1××

保留。

2××

成功接收,比如「

200」表示處理成功。

3××客戶需進一步細化請求。

4××客戶錯誤,比如「

404」表示訪問的

指定資源不存在。

5××伺服器錯誤。

get應答報文例子

乙個請求url為"http://www.zhiliaowang.com/toupiaoceshi.asp?name=朱雲翔"的應答報文例子如下:

精通unix下c語言程式設計與專案實戰

投票測試

感謝你為選手

朱雲翔投票!

語句"http/1.1 200 ok"中,"200"是響應碼,"ok"是原因描述。

post應答報文例子

下面是http協議中關於post應答報文例子,節自《中國聯合通訊公司短訊息閘道器系統介面協議(sgip)》v1.2版:

http/1.0 200 ok          /* 狀態行,應答成功 */

date: tue, 13 mar 2001 02:45:12 gmt /* 以下為實體頭資訊 */

server: apache/1.3.12 (unix)

content-type: text/html

connection: close

=<80000004>      /* 以下為post應答的實體資訊 */

=<205502327125025327>

=<8613001125453>

=<168>

=< efgh 5678> =<0>

一般情況下,post應答報文的"實體"部分儲存實際傳輸的資訊。

4. 關閉tcp套接字連線

客戶機與伺服器雙方關閉套接字連線,結束tcp/ip對話。

HTTP協議報文格式

接下來我們看看http協議 hypertext transfer protocol 超文字傳輸協議 瀏覽器端 客戶端 向web伺服器端訪問頁面的過程和http協議報文的格式。基於http協議的客戶機訪問包括4個過程,分別是建立tcp套接字連線 傳送http請求報文 接收http應答報文和關閉tcp套...

HTTP協議報文格式

http是基於客戶端 服務端 c s 的架構模型,http使用統一資源識別符號 uniform resource identifiers,uri 來傳輸資料和建立連線。一旦建立連線後,資料訊息就通過類似internet郵件所使用的格式 rfc5322 和多用途internet郵件擴充套件 mime ...

http協議(二 報文格式)

乙個http請求報文由請求行 request line 請求頭部 header 空行和請求資料4個部分組成,下圖給出了請求報文的一般格式。請求報文 請求報文例項 1.請求行 請求行由方法字段 url 字段 和http 協議版本字段 3 個部分組成,他們之間使用空格隔開。常用的 http 請求方法有 ...