HTTP 協議採請求/回應模型,訊息分為頭與實體兩部份。本文詳細定義請求訊息與回應訊息的格式規範,並完整列出 HTTP/1.1 狀態碼五大類別(1xx~5xx)含義與常見代碼。
方法 SP 路徑 SP HTTP版本 CRLF
GET /test/test.html HTTP/1.1
頭字段: 值 CRLF
Host: www.csdn.net
Connection: Keep-Alive
Accept: */*
以空行(CRLF)結束頭部份。
POST /servlet/Example HTTP/1.1
Host: localhost:8888
Content-Length: 29
Connection: Close
firstname=Bill&lastname=Gates
Content-Length 必須等於實體實際位元組數。
HTTP版本 SP 狀態碼 SP 狀態資訊 CRLF
HTTP/1.0 200 OK
版本不一定與請求一致(伺服器可能降級)。
| 類別 | 範圍 | 含義 | 常見代碼 |
|---|---|---|---|
| 1xx | 100~101 | 臨時回應 | 100 Continue |
| 2xx | 200~206 | 成功 | 200 OK、206 Partial Content |
| 3xx | 300~307 | 重導向 | 302 Found (配合 Location) |
| 4xx | 400~417 | 客戶端錯誤 | 400 Bad Request、404 Not Found |
| 5xx | 500~505 | 伺服器錯誤 | 500 Internal Error、501 Not Implemented |
請求:
GET / HTTP/1.1
Host: www.csdn.net
回應:
HTTP/1.0 200 OK
Content-Length: 132273
Content-Type: text/html
...
Connection: close
注意:請求方法、版本字母必須大寫;頭字段不區分大小寫但慣用首字母大寫。
掌握 HTTP 訊息精確格式與狀態碼語意,是實作客戶端/伺服器、除錯網路問題、設計 REST API 的基石。