天天看點

http請求消息體和響應消息體

HTTP基于請求與響應模式的、無狀态的、應用層的協定,常基于TCP的連接配接方式。HTTP允許傳輸任意類型的資料對象,HTTP協定是無狀态協定。無狀态是指協定對于事務處理沒有記憶能力。缺少狀态意味着如果後續處理需要前面的資訊,則它必須重傳,這樣可能導緻每次連接配接傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。在用戶端發出HTTP請求并受到伺服器端響應後,連接配接就會斷開,下次的通路與前一次的通路無關,是以如果需要維護用戶端的資訊,必須在伺服器端維持狀态資料。

http表示要通過HTTP協定來定位網絡資源;

host表示合法的Internet主機域名或者IP位址;

port指定一個端口号,為空則使用預設端口80;

abs_path指定請求資源的URI(如下圖中的查詢字元串);

如果URL中沒有給出abs_path,那麼當它作為請求URI時,必須以“/”的形式給出,通常這個工作浏覽器自動幫我們完成。

http請求消息體和響應消息體

使用了預設端口80.

二、http請求由三部分組成,分别是:請求行、消息報頭、請求正文

請求行格式:Method Request-URI HTTP-Version CRLF

Method表示請求方法;

Request-URI是一個統一資源辨別符;

HTTP-Version表示請求的HTTP協定版本;

CRLF表示回車和換行。

除了作為結尾的CRLF外,不允許出現單獨的CR或LF字元

請求方法(所有方法全為大寫),各個方法的解釋如下:

GET 請求擷取Request-URI所辨別的資源

POST 在Request-URI所辨別的資源後附加新的資料

HEAD 請求擷取由Request-URI所辨別的資源的響應消息報頭

PUT 請求伺服器存儲一個資源,并用Request-URI作為其辨別

DELETE 請求伺服器删除Request-URI所辨別的資源

TRACE 請求伺服器回送收到的請求資訊,主要用于測試或診斷

CONNECT 保留将來使用

OPTIONS 請求查詢伺服器的性能,或者查詢與資源相關的選項和需求

例子:

http請求消息體和響應消息體

上圖中的空行是CRLF(回車換行)。

應用舉例:

GET方法:在浏覽器的位址欄中輸入網址的方式通路網頁時,浏覽器采用GET方法向伺服器擷取資源,eg:GET /form.html HTTP/1.1 (CRLF)

POST方法要求被請求伺服器接受附在請求後面的資料,常用于送出表單。

eg:POST /reg.jsp HTTP/ (CRLF)

Accept:image/gif,image/x-xbit,... (CRLF)

...

HOST:www.guet.edu.cn (CRLF)

Content-Length:22 (CRLF)

Connection:Keep-Alive (CRLF)

Cache-Control:no-cache (CRLF)

(CRLF) //該CRLF表示消息報頭已經結束,在此之前為消息報頭

user=jeffrey&pwd=1234 //此行以下為送出的資料

HEAD方法與GET方法幾乎是一樣的,對于HEAD請求的回應部分來說,它的HTTP頭部中包含的資訊與通過GET請求所得到的資訊是相同的。利用這個方法,不必傳輸整個資源内容,就可以得到Request-URI所辨別的資源的資訊。該方法常用于測試超連結的有效性,是否可以通路,以及最近是否更新。

GET方法通常沒有消息主體,支援最大1024個位元組的查詢字元串,POST方法沒有限制。POST方法把查詢字元串放在消息主體中傳輸,是以比GET方法支援更多的資料類型。

三、HTTP響應也是由三個部分組成,分别是:狀态行、消息報頭、響應正文

狀态行格式:HTTP-Version  Status-Code  Reason-Phrase  CRLF

HTTP-Version表示伺服器HTTP協定的版本;

Status-Code表示伺服器發回的響應狀态代碼;

狀态代碼有三位數字組成,第一個數字定義了響應的類别,且有五種可能取值:

1xx:訓示資訊--表示請求已接收,繼續處理

2xx:成功--表示請求已被成功接收、了解、接受

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

4xx:用戶端錯誤--請求有文法錯誤或請求無法實作

5xx:伺服器端錯誤--伺服器未能實作合法的請求

Reason-Phrase表示狀态代碼的文本描述。

http請求消息體和響應消息體

200 OK //用戶端請求成功

400 Bad Request //用戶端請求有文法錯誤,不能被伺服器所了解

401 Unauthorized //請求未經授權,這個狀态代碼必須和WWW-Authenticate報頭域一起使用

403 Forbidden //伺服器收到請求,但是拒絕提供服務

404 Not Found //請求資源不存在,例如:輸入了錯誤的URL

500 Internal Server Error //伺服器發生不可預期的錯誤

503 Server Unavailable //伺服器目前不能處理用戶端的請求,一段時間後可能恢複正常

      原文:

wenku.baidu.com
上一篇: NULL和NUL
下一篇: http消息頭

繼續閱讀