HTTP協(xié)議
1. 什么是HTTP?
HTTP是一個簡單的請求-響應(yīng)協(xié)議,它屬于TCP/IP協(xié)議的應(yīng)用層中的協(xié)議。 HTTP協(xié)議是一種無狀態(tài)的,即通信時不對請求和響應(yīng)的狀態(tài)進行保存。
2. HTTP報文
-
請求報文
請求報文由請求方法、請求地址、協(xié)議版本、請求內(nèi)容(請求首部字段)
-
響應(yīng)報文
響應(yīng)報文由狀態(tài)碼、狀態(tài)碼的原因短語、協(xié)議版本、響應(yīng)結(jié)果(響應(yīng)首部字段)
3. 常用的HTTP請求方法
| 請求方法 | 方法含義 | 支持的協(xié)議版本 |
|---|---|---|
| GET | 獲取資源 | 1.0、1.1 |
| POST | 傳輸實體主體 | 1.0、1.1 |
| PUT | 傳輸文件 | 1.0、1.1 |
| DELETE | 刪除文件 | 1.0、1.1 |
| POST | 傳輸實體主體 | 1.0、1.1 |
| HEAD | 獲得報文首部 | 1.0、1.1 |
| OPTIONS | 訪問支持的方法 | 1.1 |
GET與POST的區(qū)別:
- 兩者的語義不同:GET指的是獲取數(shù)據(jù),POST指的是傳送數(shù)據(jù)
- 傳輸數(shù)據(jù)量不同:實際上HTTP協(xié)議規(guī)范沒有對兩者的長度有限制,具體傳輸大小視瀏覽器而定,一般GET的傳輸量較小,POST傳輸量較大
- 冪等性:GET支持冪等性,而POST不支持冪等性
4. 常見的HTTP狀態(tài)碼
狀態(tài)碼類別
| 類別 | 原因短語 | |
|---|---|---|
| 1XX | 信息性狀態(tài)碼 | 接收的請求正在處理 |
| 2XX | 成功狀態(tài)碼 | 請求正常處理完畢 |
| 3XX | 重定向狀態(tài)碼 | 需要進行附加操作以完成請求 |
| 4XX | 客戶端錯誤狀態(tài)碼 | 服務(wù)器無法處理請求 |
| 5XX | 服務(wù)器錯誤狀態(tài)碼 | 服務(wù)器處理請求出錯 |
常見的HTTP狀態(tài)碼
| 狀態(tài)碼 | 含義 | 常見原因 |
|---|---|---|
| 200 | 請求成功 | |
| 301 | 永久性重定向 | |
| 302 | 臨時性重定向 | |
| 400 | 報文中存在錯誤 | 前端傳參錯誤 |
| 403 | 服務(wù)器拒絕處理 | 爬蟲被封禁了 |
| 404 | 服務(wù)器錯誤狀態(tài)碼 | url地址輸入有誤 |
| 500 | 服務(wù)器錯誤 | 服務(wù)端的代碼錯在bug |