在接收並解釋請求消息後,伺服器將使用HTTP響應消息進行響應:
- A Status-line
- Zero or more header (General|Response|Entity) fields followed by CRLF
- An empty line (i.e., a line with nothing preceding the CRLF) indicating the end of the header fields
- Optionally a message-body
以下各節解釋HTTP響應消息中使用的每個實體。
Message Status-Line
狀態行由協議版本、數字狀態代碼及其相關文本短語組成。元素由空格SP字符分隔。
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP Version
支持HTTP版本1.1的伺服器將返回以下版本信息:
HTTP-Version = HTTP/1.1
Status Code
狀態代碼元素是一個3位整數,其中狀態代碼的第一位定義響應的類,最後兩位不具有任何分類角色。第一個數字有5個值:
S.N. | Code and Description |
---|---|
1 | 1xx: Informational 這意味著請求已被接收,並且該過程正在繼續。 |
2 | 2xx: Success 這意味著行動被成功地接受、理解和接受。 |
3 | 3xx: Redirection 這意味著必須採取進一步行動才能完成請求。 |
4 | 4xx: Client Error 這意味著請求包含不正確的語法或無法實現。 |
5 | 5xx: 伺服器 Error 這意味著伺服器無法完成一個明顯有效的請求。 |
HTTP狀態代碼是可擴展的,HTTP應用程式不需要理解所有註冊狀態代碼的含義。所有狀態代碼的列表已在單獨一章中列出,供您參考。
Response Header Fields
在學習HTTP頭欄位時,我們將在單獨的一章中研究通用頭和實體頭。現在,讓我們檢查一下響應頭欄位是什麼。
響應頭欄位允許伺服器傳遞有關無法放置在狀態行中的響應的附加信息。這些頭欄位提供有關伺服器的信息,以及有關對由請求URI標識的資源的進一步訪問的信息。
接受範圍
年齡
ETag公司
位置
代理認證
稍後重試
伺服器
變化
WWW認證
You can introduce your custom fields in case you are going to write your own custom Web Client and 伺服器.
Examples of Response Message
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT 伺服器: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT Content-Length: 88 Content-Type: text/html Connection: Closed
<html> <body> <h1>Hello, World!</h1> </body> </html>
以下示例顯示當web伺服器找不到請求的頁時顯示錯誤條件的HTTP響應消息:
HTTP/1.1 404 Not Found Date: Sun, 18 Oct 2012 10:36:20 GMT 伺服器: Apache/2.2.14 (Win32) Content-Length: 230 Connection: Closed Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head> <title>404 Not Found</title> </head> <body> <h1>Not Found</h1> <p>The requested URL /t.html was not found on this server.</p> </body> </html>
下面是當web伺服器在給定的HTTP請求中遇到錯誤的HTTP版本時顯示錯誤條件的HTTP響應消息示例: