http協議報文格式
接下來我們看看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為"
=朱雲翔"的get請求報文例子如下:
get=朱雲翔 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報文傳送資訊的資料儲存在"實體"部分中。
post /sp.cgi http/1.0 /* 請求行,服務程式為sp.cgi */host: www.spserver.com
/* 以下為實體頭資訊 */
authorization: basic
=<4> /* 以下為post請求的實體資訊 */=<205502327125025327> /* 實體部分輸送報文 */
=<8613001125453>
=<168>
=
3. 接收http應答報文
web伺服器處理客戶請求,並向客戶機傳送應答報文,http協議的應答報文格式為:
應答報文 = 狀態行(實體頭資訊)crlf [實體內容]
狀態行 = http版本號 狀態碼 原因敘述
狀態碼描述了web伺服器執行客戶機請求的狀態資訊,其取值含義如表15-8所示:
表15-8 http應答響應碼含義
取值
描述
1××保留。
2××成功接收,比如「
200」表示處理成功。
3××客戶需進一步細化請求。
4××客戶錯誤,比如「
404」表示訪問的
指定資源不存在。
5××伺服器錯誤。
get應答報文例子
乙個請求url為"
=朱雲翔"的應答報文例子如下:
cache-control: private
精通unix下c語言程式設計與專案實戰投票測試
感謝你為選手
朱雲翔投票!
語句"http/1.1 200 ok"中,"200"是響應碼,"ok"是原因描述。
post應答報文例子
下面是http協議中關於post應答報文例子,節自《中國聯合通訊公司短訊息閘道器系統介面協議(sgip)》v1.2版:
http/1.0 200 ok /* 狀態行,應答成功 */=<80000004> /* 以下為post應答的實體資訊 */date: tue, 13 mar 2001 02:45:12 gmt /* 以下為實體頭資訊 */
server: apache/1.3.12 (unix)
content-type: text/html
connection: close
=<205502327125025327>
=<8613001125453>
=<168>
=< efgh 5678> =<0>
一般情況下,post應答報文的"實體"部分儲存實際傳輸的資訊。
4. 關閉tcp套接字連線
客戶機與伺服器雙方關閉套接字連線,結束tcp/ip對話。
http協議詳解1
二 常見協議型別 方法 1 get 1.0版本 無body 2 post 1.0版本 可有body,也可無body 3 put 1.1版本 4 delete 1.1版本 5 head 1.0版本 6 trace 1.1版本 三 request url請求 組成部分 1 請求行 包含 請求方法 get...
Http協議詳解 Http請求詳解
http是hypertext transfer protocol 超文字傳輸協議 的簡寫,它是tcp ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程。客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵守一定的通訊格式,http協議用於定義客戶端與w...
Http協議詳解
http協議是乙個基於tcp ip 的協議,使用的是一種請求 響應模型 目前的版本為1。1,但有一些 仍然使用1。0的版本,在待會的實驗中,我們可以看到,網易的主頁163.com仍舊使用的1.0的標準。1 何為請求 響應機制 在這一種機制中,總是客戶端請求伺服器,伺服器接受響應後根據請求端的請求資訊...