一、什么是HTTP協議?
????????HTTP協議,全稱 Hyper Text Transfer Protocol(超?本傳輸協議)的縮寫,是?于服務器與客戶端瀏覽器之間傳輸超?本數據(?字、圖?、視頻、?頻)的應?層協議。它規定了客戶端如何向服務器發送請求,以及服務器如何對請求做出響應,定義了請求和響應的格式與規則,是互聯網通信的基石。
協議特點:靈活可擴展、基于TCP/IP的可靠傳輸、應用層協議、請求-應答模式、無狀態。
二、HTTP協議通信過程
HTTP是一個應用層協議,默認端口為80,在傳輸層使用TCP協議進行數據的傳輸。
通信過程如下:
1.當用戶發起一個新的請求;
2.瀏覽器發起對服務器的TCP連接請求;
3.服務器與瀏覽器之間會按照TCP協議的三次握手,建立之間的TCP連接;
4.瀏覽器按照http協議格式,創建請求數據包(http請求報文);
5.將請求數據包(http請求報文)發送至服務器;
6.服務器按照http協議格式,解析請求報文;
7.執行請求處理,調用相關業務邏輯方法,產生響應數據;
8.服務器按照http協議格式,將響應數據封裝至響應數據包(http響應報文);
9.服務器將響應數據包,發送至瀏覽器;
10.瀏覽器按照http協議格式,對響應數據包進行解析;
11.瀏覽器將響應數據包中的響應內容,顯示至瀏覽器頁面,呈現給用戶;? ??
三、HTTP報文
1.請求報文
????????瀏覽器通過URL發起?個請求時,會發送?個 http 請求報?給?標服務器,服務器根據請求報?中攜帶的請求數據進?處理。
???????? 請求報文結構:
·第一行是包含:請求方式、URL、協議版本
·接下來的多?都是http請求?部內容,其中包含若?個http?部字段
·?個空??來分隔?部和內容主體Body
·最后是請求的內容主體
2.響應報文
????????當服務器處理完請求后,會將響應數據放入http響應報文中返回給瀏覽器。
? ? ? ? 響應報文結構:
·第一行包含:協議版本、狀態碼以及描述。
·接下來的若干行是首部內容
·一個空行分隔首部和內容主體
·最后是響應的內容主體
四、HTTP請求方式
1.GET:獲取資源
????????GET方法用于使用給定的URL從給定服務器中檢索信息,完成從指定資源中請求數據。使用GET方法的請求應該只是檢索數據,并且不會對數據產生其他影響。
2.POST:提交數據增加資源
????????POST方法用于將數據發送到服務器以創建或增加資源。使用post方法,如果兩個請求相同,后一個請求不會覆蓋第一個請求,所以post用于增加資源。
3.HEAD:獲取響應報頭
????????HEAD和GET方法類似,但是不返回響應報文內容主體部分,僅傳輸響應報頭部分。主要用于確認URL的有效性以及資源更新的日期時間等。
4.PUT:修改資源
????????PUT方法用來修改資源,要求在請求報文的主體中包含數據內容,然后保存到請求URL指定位置。使用put方法,如果兩個請求相同,后一個請求會覆蓋第一個請求,所以put用于修改資源。
5.DELETE:刪除資源
????????DELETE方法用來刪除指定的資源。
6.OPTIONS:查詢支持的方法
????????查詢指定的URL能夠支持的方法。會返回Allow:GET,POST,HEAD,OPTIONS等請求方式內容。
GET和POST的區別:
? ? ? ? 1.GET用于獲取數據,POST用于提交數據;
? ? ? ? 2.GET和POST的請求報文格式不同;
? ? ? ? 3.GET使用請求報文中的首部字段URL傳遞請求參數,POST使用Request Boby提交數據;
? ? ? ? 4.GET是冪等且可緩存,POST非冪等且不可緩存;
????????????????「冪等」:意思是多次執行相同的操作,結果都是「相同」的。
五、HTTP首部字段?
字段名 | 說明 | 示例 |
---|---|---|
Host | 服務器域名 | Host: www.example.com |
Content-Type | 內容類型 | Content-Type: text/html; charset=utf-8 |
Content-Length | 內容長度 | Content-Length: 1024 |
Connection | 連接控制 | Connection: keep-alive |
Accept | 可接受的響應類型 | Accept: application/json |
User-Agent | 客戶端信息 | User-Agent: Mozilla/5.0... |
六、HTTP狀態碼
服務器返回的響應報文中第一行為狀態行,包含了狀態碼以及原因短語,用來告知客戶端請求后的響應結果。?
1XX信息
2XX成功
3XX重定向
4XX客戶端錯誤
5XX服務器錯誤
七、連接管理
1.長連接和短鏈接

2.管線化鏈接
????????將多個HTTP請求(request)整批提交的技術,在傳送過程中不需先等待服務端的回應。管線化機 制須通過?連接(persistent connection)完成,僅HTTP/1.1?持此技術(HTTP/1.0不?持)。
八、HTTPS加密
1.HTTP協議存在的問題
????????HTTP由于使?明?傳輸,不安全。所以可能會出現內容被竊聽(?如被抓包);不驗證通信?的身 份,通信?的身份有可能遭遇偽裝(?如釣??站);?法證明報?的完整性,報?有可能遭篡改(?如強制在線?告植?)
2.什么是HTTPS協議?
????????HTTPS并不是?個新的協議,它使?了隧道進?通信,讓 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信。通過使?SSL,HTTPS具有了加密(防竊聽)、認證(防偽裝)和完整性保護(防篡改)。
3.加密方式有哪些?
1.消息摘要加密,例如:MD5、SHA
2.對稱式加密:加密和解密使用同一把密鑰
? ? ? ? 優點:加密速度快
????????缺點:?法安全的將密鑰傳輸給發送?
3.非對稱式加密:兩把密鑰,公鑰加密,私鑰解密
? ? ? ? 優點:可以更安全地將信息傳輸給通信發送?
? ? ? ? 缺點:運?速度慢
4.HTTPS的工作原理
????
?九、總結
????????HTTP作為Web通信的基石,其報文結構、請求方法、狀態碼與連接管理等核心機制,不僅是開發者必須掌握的基礎知識,更是構建高效、可靠網絡應用的關鍵。隨著網絡安全威脅日益增多,HTTPS通過引入加密傳輸與身份驗證機制,有效彌補了HTTP在安全性方面的先天不足,已成為現代Web應用中不可或缺的標準配置。深入理解HTTP與HTTPS的工作原理,不僅有助于提升系統性能與用戶體驗,更是構建安全、可信網絡環境的必經之路。希望本文能為你的學習與實踐帶來切實幫助。