1. 程式人生 > >HTTP請求方法與HTTP訊息結構

HTTP請求方法與HTTP訊息結構

HTTP是基於客戶端/服務端(C/S)的架構模型,通過一個可靠的連結來交換資訊,是一個無狀態的請求/響應協議。

一個HTTP"客戶端"是一個應用程式(Web瀏覽器或其他任何客戶端),通過連線到伺服器達到向伺服器傳送一個或多個HTTP的請求的目的。

一個HTTP"伺服器"同樣也是一個應用程式(通常是一個Web服務,如Apache Web伺服器或IIS伺服器等),通過接收客戶端的請求並向客戶端傳送HTTP響應資料。

HTTP使用統一資源識別符號(Uniform Resource Identifiers, URI)來傳輸資料和建立連線。

一旦建立連線後,資料訊息就通過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴充套件(MIME)[RFC2045]來傳送。

  • 客戶端請求訊息

客戶端傳送一個HTTP請求到伺服器的請求訊息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求資料四個部分組成,下圖給出了請求報文的一般格式。

2012072810301161

  • 伺服器響應訊息

HTTP響應也由四個部分組成,分別是:狀態行、訊息報頭、空行和響應正文。

httpmessage

  • 例項

下面例項是一點典型的使用GET來傳遞資料的例項:

客戶端請求:

GET /hello.txt HTTP/1.1User-Agent: curl/7.16.3 libcurl/7.16.3OpenSSL/0.9.7l zlib/1.2.3Host: www.example.com
Accept-Language: en, mi

服務端響應:

HTTP/1.1200 OK
Date:Mon,27Jul200912:28:53 GMT
Server:ApacheLast-Modified:Wed,22Jul200919:15:56 GMT
ETag:"34aa387-d-1568eb00"Accept-Ranges: bytes
Content-Length:51Vary:Accept-EncodingContent-Type: text/plain

輸出結果:

HelloWorld!My payload includes a trailing CRLF.