目錄
一、HTTP/HTTPS 簡介
1、HTTP
2、HTTPS
二、HTTP 工作過程
三、HTTP 消息
1、HTTP消息結構
2、HTTP消息示例
四、HTTP 方法(常用)
1、GET
2、POST
3、PUT
4、DELETE
5、GET與POST對比
五、HTTP 狀態碼(常用)
1、HTTP 狀態碼是什么
2、常見的HTTP狀態碼
一、HTTP/HTTPS 簡介
1、HTTP
HTTP(Hypertext Transfer Protocol),超文本傳輸協議;
- 是一種用于在萬維網上傳輸數據的應用層協議;
- 主要用來定義客戶端和服務器之間的通信規則,包括請求和響應的格式、方法、狀態碼等;
- 是一個基于 TCP/IP 通信協議來傳遞數據(HTML 文件、圖片文件、查詢結果等);
2、HTTPS
HTTPS(HyperText Transfer Protocol Secure),超文本傳輸安全協議;
在 HTTP 上加入 SSL/TLS 協議,為數據傳輸提供了加密和身份驗證,是HTTP的安全版本;
二、HTTP 工作過程
1、客戶端發起請求
用戶通過客戶端(如瀏覽器)輸入 URL,客戶端向服務器發起一個 HTTP 請求;
2、服務器處理請求
服務器接收到請求后,根據請求的類型(如GET、POST等)和請求的資源,進行相應的處理;
3、服務器返回響應
服務器將處理結果包裝成HTTP響應消息,發送回客戶端;
4、客戶端渲染頁面
客戶端接收到響應后,根據響應內容(如HTML、圖片等)渲染頁面,展示給用戶;
三、HTTP 消息
HTTP消息是指,在HTTP協議中,客戶端與服務端之間進行數據傳輸的基本單元;
- 是前后端通信的基礎,由一系列的文本行組成,有著固定的結構和格式;
- 遵循HTTP協議的規范,確保數據能夠在客戶端和服務器之間正確、高效地傳輸;
- 分為兩種類型:請求消息和響應消息;
1、HTTP消息結構
?(1)請求消息
(2)響應消息
組成部分 | 說明 |
---|---|
起始行 Start Line |
|
頭部字段 Headers |
|
空行 Empty Line |
|
消息體 Body |
|
2、HTTP消息示例
(1)請求消息
(2)響應消息
四、HTTP 方法(常用)
常用的HTTP方法有:GET、POST、PUT、DELETE;
序號 | 方法 | 語義 | 說明 |
---|---|---|---|
1 | GET | 查找 | 從服務器獲取資源。 |
2 | POST | 新增 | 向服務器發送數據以創建新資源。 |
3 | PUT | 修改 | 向服務器發送數據以更新現有資源。 |
4 | DELETE | 刪除 | 從服務器刪除指定的資源。 |
這些方法雖然有各自的語義,但并不是強制性的;
1、GET
GET方法,用于從服務器獲取資源;
用于請求數據而不對數據進行更改;
例如,從服務器獲取數據、圖片、文件等;
2、POST
POST方法,用于向服務器發送數據以創建新資源;
常用于提交表單數據或上傳文件,發送的數據包含在請求體中;
例如,新增用戶、添加商品等;
3、PUT
PUT方法,向服務器發送數據以更新現有資源;
如果資源不存在,則創建新的資源;
例如,用戶修改密碼、更新商品庫存等;
4、DELETE
DELETE方法,從服務器刪除指定的資源;
請求中包含要刪除的資源標識符;
例如:注銷個人賬戶、刪除某個商品信息;
5、GET與POST對比
GET 請求 | POST 請求 | |
---|---|---|
用途 | 常用于獲取數據,如查詢操作; | 常用于創建數據,如表單提交、文件上傳等; |
數據傳遞方式 | 將數據作為URL的一部分進行傳遞,會顯示在地址欄中; | 將數據放在請求體中進行傳遞,不會顯示在地址欄中; |
數據長度限制 | 對數據的長度有限制,跟地址長度有關系,不同的瀏覽器有所不同,一般最多幾k; | 理論上能攜帶的數據是無限的,但實際受配置和性能的影響; |
緩存 | 可以被緩存; | 一般不會被緩存; |
安全性 | 相對不安全,傳遞的數據在瀏覽器地址欄直接可見,不適合傳遞敏感數據; | 相對安全,更適合傳遞敏感信息; |
對服務器的影響 | 通常只是用來獲取資源,不會對服務器上的資源產生影響; | 通常是用來創建資源,對服務器上的資源會產生; |
五、HTTP 狀態碼(常用)
1、HTTP 狀態碼是什么
HTTP狀態碼是HTTP協議中,用來描述服務器響應客戶端請求結果的一種編碼方式;
- 是服務器端返回的,對客戶端請求的處理結果;
- 它由三位數字組成,每個數字表示不同的含義;
- 定義服務器對請求的處理結果,是服務器返回的;
2、常見的HTTP狀態碼
熟悉常用的狀態碼對前后端開發有很大的幫助;
不僅可以快速識別請求是否成功;
也可以得出在請求過程中出現的錯誤類型,進而相應的相應的處理;
HTTP狀態碼 | 英文名稱 | 語義 | ||||
1xx | 信息,服務器收到請求,需要請求者繼續執行操作 | |||||
100 | Continue | 繼續。客戶端應繼續其請求; | ||||
101 | Switching Protocols | 切換協議。服務器根據客戶端的請求切換協議; | ||||
2xx | 成功,操作被成功接收并處理 | |||||
200 | OK | 請求成功。請求所希望的響應頭或數據體將隨此響應返回; | ||||
201 | Created | 已創建。成功請求并創建了新的資源; | ||||
202 | Accepted | 已接受。已經接受請求,但未處理完成; | ||||
204 | No Content | 無內容。服務器成功處理,但未返回內容; | ||||
206 | Partial Content | 部分內容。服務器成功處理了部分GET請求; | ||||
3xx | 重定向,需要進一步的操作以完成請求 | |||||
301 | Moved Permanently | 永久移動。請求的資源已被永久移動到新位置; | ||||
302 | Found | 臨時移動。與301類似,客戶端應繼續使用原先的URL請求資源; | ||||
304 | Not Modified ? | 未修改。自上次請求后,請求的資源未被修改過; | ||||
305 | Use Proxy | 使用代理。所請求的資源必須通過代理訪問; | ||||
307 | Temporary Redirect | 臨時重定向。與302類似。使用GET請求重定向; | ||||
4xx | 客戶端錯誤,請求包含語法錯誤或無法完成請求 | |||||
400 | Bad Request | 客戶端請求的語法錯誤,服務器無法理解; | ||||
401 | Unauthorized | 請求要求用戶的身份認證; | ||||
403 | Forbidden | 服務器理解請求,但拒絕執行它; | ||||
404 | Not Found | 服務器無法找到請求的資源; | ||||
405 | Method Not Allowed | 請求方法不被允許用于請求的資源; | ||||
409 | Conflict | 請求與當前資源的狀態沖突; | ||||
410 | Gone | 服務器無法找到請求的資源,且該資源可能不再可用; | ||||
5xx | 服務器錯誤,服務器在處理請求的過程中發生了錯誤 | |||||
500 | Internal Serve Error | 服務器內部錯誤,無法完成請求; | ||||
501 | Not Implemented | 服務器不支持請求請求的功能; | ||||
502 | Bad Gateway | 服務器作為網關或代理,從上游服務器收到無效響應; | ||||
503 | Service Unavailable | 服務器當前無法使用(由于超載或停機維護); | ||||
504 | Gateway Timeout | 服務器作為網關或代理,但沒有及時從上游服務器收到請求; |
=========================================================================
每天進步一點點~~!
先記錄到這里吧~~!