HTTP 訊息結構
HTTP是基於客戶端/服務端(C/S)的架構模型,透過可靠的連結來交換訊息,是一個無狀態的請求/回應協定。
一個HTTP"客戶端"是一個應用程式(網頁瀏覽器或其他任何客戶端),透過連接到伺服器達到向伺服器發送一個或多個HTTP的請求的目的。
HTTP使用統一資源識別碼(Uniform Resource Identifiers, URI)來傳輸資料和建立連線。
一旦建立連線後,資料訊息就會透過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴充(MIME)[RFC2045]來傳送。
客戶端請求訊息
客戶端傳送一個HTTP請求到伺服器的請求訊息包含以下格式:請求行(request line)、請求頭部(header)、空白行和請求資料四個部分組成,下圖給出了請求訊息的一般格式。
伺服器回應訊息
HTTP回應也由四個部分組成,分別是:狀態列、訊息標頭、空白行和響應正文。
實例
下面實例是一點典型的使用GET來傳遞資料的實例:
客戶端請求:
GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi
服務端回應:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain
輸出結果:
Hello World! My payload includes a trailing CRLF.