TCP/IP–http協議(http報文格式) .

HTTP(HyperText Transport Protocol,超文本傳送協議)

HTTP請求報文

http請求數據包的格式:頭部(request line + header)+  數據(data)

頭部和數據包體通過一個空行來隔開,頭部的格式主要包括請求行+請求頭部。如下圖

HTTP請求頭

請求行

請求行由請求方法字段URL字段HTTP協議版本字段3個字段組成,它們用空格分隔如:

GET /index.html HTTP/1.1。

HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這裏介紹最常用的GET方法和POST方法。

GET方式:在URL裏面就說明要請求的資源,URL裏面包含參數,“?”後面就是參數,而“?”前面就是URL的結束。“?ip=192.168.156.11&active=on”這種就是GET方式的包,而服務器把客戶端請求的內容在數據段裏面發回給客戶端。

POST方式:傳輸的數據不在URL裏面出現,而是在數據段裏面出現。但是請求頭部多了Content-Type和Content-Length兩個字段。

請求頭部

請求頭部由(關鍵字:<空格>值)對組成,每行一對,關鍵字和值用英文冒號“:<空格>”分隔。請求頭部通知服務器有關於客戶端請求的信息,典型的請求頭有:

User-Agent:產生請求的瀏覽器類型。

Accept:客戶端可識別的內容類型列表。

Host:請求的主機名,允許多個域名同處一個IP地址,即虛擬主機。

下面是GET包的一個例子:傳輸的數據在URL裏

再看看POST包的例子:傳輸的數據在數據段裏面

HTTP響應報文

HTTP響應也由兩個個部分組成,分別是:響應頭(狀態行+消息報頭)+響應正文

狀態行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

HTTP-Version表示服務器HTTP協議的版本;Status-Code表示服務器發回的響應狀態代碼;Reason-Phrase表示狀態代碼的文本描述。狀態代碼由三位數字組成,第一個數字定義了響應的類別,且有五種可能取值。

1xx:指示信息–表示請求已接收,繼續處理。

2xx:成功–表示請求已被成功接收、理解、接受。

3xx:重定向–要完成請求必須進行更進一步的操作。

4xx:客戶端錯誤–請求有語法錯誤或請求無法實現。

5xx:服務器端錯誤–服務器未能實現合法的請求。

下面是http響應包的例子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章