# 3.2 狀態代碼
## 3.2 狀態代碼
在前面HTTP一節的例子中,服務器對請求
```
GET /index.html
```
回復了一個狀態代碼200,表示“沒問題”。除了200,HTTP還定義了一系列的狀態代碼,各有不同含義,如404表示“請求的資源不存在”,500表示一個服務器錯誤等。這些代碼分為以下幾類:
- 1XX系列代碼表示一個中間狀態(provisional response),不常見。
- 2XX系列代碼表示成功,如200。另外還有一些2XX代碼對“成功”有更具體的定義和行為,比如:201表示成功創建了一個資源;204表示請求被成功處理但是應答不帶有任何消息正文。
- 3XX系列表示重定向(redirection),客戶端在收到這個代碼后應該根據服務器的指示(通過一個Location應答頭)向一個新的URL發起GET請求。
- 4XX系列表示客戶端錯誤,比如404表示所請求的資源不存在,403表示客戶端沒有權限訪問所請求的資源。
- 5XX系列表示服務器端錯誤,如500(服務器不必詳細給出錯誤的原因)。
這篇Wiki文檔對HTTP狀態代碼做了更多說明:[https://en.wikipedia.org/wiki/List\_of\_HTTP\_status\_codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
需要注意的是:服務器回復的狀態代碼(status code)跟請求的方法(method)有緊密的關聯——方法決定了哪些代碼是合理的,哪些不合理。比如對一個GET或DELETE請求,返回201是不合理的。這在設計RESTful Web API時尤為重要。
- 前言
- 1 Web概述
- 1.1 什么是Web
- 1.2 超文本和超鏈接
- 1.3 URL
- 1.4 DNS
- 1.5 HTTP
- 1.5.1 客戶端請求
- 1.5.2 服務器應答
- 1.5.3 進一步了解HTTP
- 1.6 HTTPS
- 2 Web瀏覽器
- 2.1 HTML
- 2.1.1 文檔類型聲明
- 2.1.2 標簽和屬性
- 2.1.3 文檔結構
- 2.1.4 DOM
- 2.1.5 進一步了解HTML
- 2.2 CSS
- 2.2.1 樣式與樣式表
- 2.2.2 樣式表語法
- 2.2.3 級聯樣式表
- 2.2.4 進一步了解CSS
- 2.3 JavaScript
- 2.3.1 script標簽
- 2.3.2 操縱DOM
- 2.3.3 jQuery
- 2.3.4 進一步了解JavaScript
- 2.4 Ajax
- 2.5 移動設備與響應式Web設計
- 3 Web服務器
- 3.1 方法與資源
- 3.2 狀態代碼
- 3.3 靜態內容與動態內容
- 3.4 編程語言與技術
- 3.4.1 CGI
- 3.4.2 PHP
- 3.4.3 Java
- 3.4.4 Python
- 3.4.5 Ruby
- 3.4.6 Node.js
- 3.5 RESTful Web API
- 3.6 服務器架構
- 3.7 Web緩存
- 3.8 服務器推送
- 4 數據庫
- 4.1 關系型數據庫
- 4.2 NoSQL數據庫
- 5 Web服務器的其他組件
- 5.1 Cron
- 5.2 消息隊列
- 5.3 郵件服務器
- 6 開發工具與技術
- 6.1 Git
- 6.1.1 Git基礎操作
- 6.1.2 Git基本原理
- 6.1.3 進一步了解Git
- 6.2 敏捷開發