- Java EE程序設計與開發實踐教程
- 馮志林編著
- 815字
- 2021-10-27 17:05:21
2.1.3 HTTP響應
在接收和解釋請求消息后,服務器會返回一個HTTP響應消息。與HTTP請求類似,HTTP響應也分為4個部分(響應行、響應頭信息、空行和響應實體)。
1.響應行(協議版本、狀態代碼和狀態文字)
格式如下:

其中,HTTP-Version表示服務器HTTP協議的版本,Status-Code表示服務器發回的響應狀態代碼,Reason-Phrase表示狀態代碼的文本描述。
狀態代碼有3位數字組成,第一位數字定義了響應的類別,且有5種可能取值。
● 1xx:指示信息--表示請求已接收,繼續處理。
● 2xx:成功--表示請求已被成功接收、理解、接受。
● 3xx:重定向--要完成請求必須進行更進一步的操作。
● 4xx:客戶端錯誤--請求有語法錯誤或請求無法實現。
● 5xx:服務器端錯誤--服務器未能實現合法的請求。
常見狀態代碼、狀態描述的說明如下:
● 200 OK:客戶端請求成功。
● 400 Bad Request:客戶端請求有語法錯誤,不能被服務器所理解。
● 401 Unauthorized:請求未經授權。
● 403 Forbidden:服務器收到請求,但是拒絕提供服務。
● 404 Not Found:請求資源不存在,如輸入了錯誤的URL。
● 500 Internal Server Error:服務器發生不可預期的錯誤。
● 503 Server Unavailable:服務器當前不能處理客戶端的請求。
2.響應頭信息(key:value)
下面列舉一些常用屬性:
● Server:Apache Tomcat ——>通知客戶端服務器的類型
● Content-Encoding:gzip ——>通知客戶端數據的壓縮格式
● Content-length:80 ——>通知客戶端回送數據的長度
● Content-language:zh-cn ——>通知客戶端回送數據的語言環境
● Content-type:text/html;charset=utf-8 ——>通知客戶端回送數據的類型
● Last-Modified:Tue 11 Jul 2017 21:02:37 ——>通知客戶端最后的緩存時間
● Transfer-Encoding:chuncked ——>通知客戶端回送數據按照塊傳送
● Etag:W/0384384093489023843 ——>通知客戶端回送數據的唯一標識
● Date:Tue 11 Jul 2017 21:02:37 GMT ——>服務器請求資源的當前時間
3.空行
響應頭和響應實體之間用一個空行隔開,沒有請求實體時,空行仍不能省。
4.響應實體(也可能沒有)
下面是一個完整的HTTP響應消息的例子,代碼如下:

其中,01行是響應行,用于顯示服務器響應的狀態,HTTP/1.1顯示了對應的HTTP協議版本,200為狀態數字,OK為狀態信息用于解釋狀態數字(這里OK對應200,表示請求正常);02~09行是響應頭信息,10行為空行,11行為響應實體內容(也就是服務器返回的網頁內容,頁面上顯示welcome)。
- Python入門很簡單
- PHP+MySQL網站開發項目式教程
- 重學Java設計模式
- 零基礎學Python數據分析(升級版)
- C++新經典
- UML 基礎與 Rose 建模案例(第3版)
- Learning ArcGIS for Desktop
- Integrating Facebook iOS SDK with Your Application
- 從Java到Web程序設計教程
- 軟件測試綜合技術
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- Python Digital Forensics Cookbook
- Android Studio開發實戰:從零基礎到App上線 (移動開發叢書)
- Android編程權威指南(第4版)
- Mastering Drupal 8