1. 程式人生 > >HTTP請求/響應分析

HTTP請求/響應分析

HTTP所採用的是請求/響應模型,HTTP訊息有兩種:請求(request)和響應(response).

這兩種訊息的組成都包括1)一個起始行(start line);2)零個或多個首部欄位(header field);3)以及一個代表訊息首部(message header)結尾的空行;4)這兩種訊息還可能包含一個可有可無的訊息體(message body)。

請求和響應訊息的格式及組成存在細微的差異。

HTTP request

HTTP請求的起始行就是請求行(request line),他包含三個欄位:1)HTTP方法(get/post等);2)URI(universal resource identifier

,統一資源識別符號);3)HTTP協議版本(如圖1所示)

                 圖1:

 

執行用:telnet localhost 8887(此配置見telnet服務來登陸某主機的特定埠 )

然後再輸入:GET /index.html HTTP/1.0

鍵入此GET命令後,必須按兩次Enter鍵:第一次表示請求行已結束;第二次是通知伺服器你已經完成請求

  對request和response而言,header field's format 都一樣,開始是首部欄位名,接著冒號(:),然後是所包含的值,如果某個header field contains more than one value ,則必須以逗號隔開。

另:首部欄位可以視為與訊息體有關的元資料(metadata)

HTTP response

伺服器接收到請求,並予以處理後,返回一個HTTP response message 給客戶。響應的開頭是狀態行(status line),接下來是零個或多個首部欄位,後面接著一個空行,此外,還可能會包含一個可有可無的訊息體。

HTTP響應狀態行示例:HTTP/1.1 200 ok

 響應訊息中的首部欄位和請求訊息中的首部欄位格式類似,首部欄位可以讓伺服器向客戶傳遞無法放在狀態行的額外資訊。這些首部欄位會提供關於伺服器的資訊,以及關於請求中所含URI進一步存取的資訊。在最後的響應首部之後,會接一行空行,然後伺服器可以插入響應的訊息體。在大多數情況下,響應的訊息體就是HTML格式的輸出。

 
http://tb.blog.csdn.net/TrackBack.aspx?PostId=619076