HTTP協議:一.是什麼:超文本傳輸協議(HyperText Transfer Protocol,簡稱HTTP)是一種用於傳輸網頁及其他數據的協議。它定義了客户端(通常是瀏覽器)和服務器之間信息交換的格式和方式。HyperText Transfer Protocol縮寫

二.核心作用:****規定瀏覽器(客户端)和服務器之間怎麼溝通,實現網頁、圖片、數據等資源的傳輸。是提供一種標準的,可擴展的機制來訪問和傳輸網頁及各種資源。

** 三.與TCPIP的區別是什麼:****TCP/IP 是一套 “網絡通信全家桶”,HTTP 是基於它的 “Web 專屬通信規則”
1. 作用不同:TCP/IP 管數據怎麼傳:比如把數據拆成小包、保證包不丟、按順序送達。
HTTP 管傳什麼、怎麼對話:比如瀏覽器説 “GET 一個網頁”,服務器回 “200 成功 + 網頁內容”。
2.層級不同:TCP/IP 是協議簇(包含 TCP、IP、UDP 等多個協議),屬於網絡傳輸的底層基礎,負責數據從一台設備傳到另一台設備的 “通路搭建”。
HTTP 是應用層協議,跑在 TCP/IP 之上,只負責瀏覽器和服務器之間 “請求 - 響應” 的交互規則。
3.使用場景不同:TCP/IP 是通用的,所有網絡通信都用它(比如聊天軟件、遊戲、郵件)。
HTTP 只用於 Web 場景(比如訪問網頁、調用接口)。
** 四.五層(七層)結構 : 應用層(表示層,會話層),傳輸層,網絡層,數據庫鏈層,物理層(7層)
** 五:在地址欄輸入內容回車後過程:三次握手,四次揮手::

【計算機網絡】 HTTP協議及相關面試題整理 (建議收藏)_wx628e0b5406946的技術博客_客户端

【計算機網絡】 HTTP協議及相關面試題整理 (建議收藏)_wx628e0b5406946的技術博客_服務器_02



** 六.請求和相應的結構,包括幾個部分:
請求:請求行,請求頭,空行,請求體(可以為空)

響應(不能為空):狀態行,響應頭,空行,響應體(可以為空)
     **七.以請求結構為例:裏面關鍵詞:**Host: www.example.com
                                    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
                                    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
                                    Accept-Language: en-US,en;q=0.5
                                    Accept-Encoding: gzip, deflate, br
                                    Connection: keep-alive
                                    Upgrade-Insecure-Requests: 1
                                    Cache-Control: max-age=0
                                    Cookie:攜帶用户會話信息(登錄態等)
                                    Content-Type:(POST 專用)聲明請求體的數據格式
    **八.常見請求頭:**Host:目標服務器的域名。
                      User-Agent:客户端瀏覽器的信息。
                      Accept:客户端能夠接受的內容類型。
                      Accept-Language:客户端能夠接受的語言。
                      Accept-Encoding:客户端能夠接受的編碼格式。
                      Connection:連接管理信息,如保持連接打開或關閉。
                      Authorization:客户端提供的認證信息。
                      Cookie:客户端發送給服務器的Cookie信息。
 ** 九.響應關鍵字:**date:響應生成時間
                    Content-Type:響應的內容類型 | `Content-Type: text/html; charset=utf-8` <br> `Content-							Type: application/json` |
                    Content-Length:指示響應體的字節大小 | `Content-Length: 2048` |
                    Cache-Control: 控制客户端的緩存策略 | `Cache-Control: max-age=3600`(緩存1小時) |
                    Set-Cookie:設置客户端的Cookie信息 | `Set-Cookie: sessionid=abc123; Path=/; HttpOnly` |
                    Server: 生成響應的服務器軟件的信息 | `Server: Nginx/1.21.0` |
                    Location: 配合 3xx 狀態碼,指示資源重定向地址 | `Location: https://www.new-example.com` 
                    Access-Control-Allow-Origin: 解決跨域問題,允許指定域名訪問 | `Access-Control-Allow-															Origin: *` |
                    響應體: HTTP響應體包含了實際的響應數據,根據響應頭部的Content-Type,響應體可以是HTML、JSON、圖片等多種格式的數據。
  **十.常見響應頭:**Date:響應生成的時間。
                    Content-Type:響應的內容類型。
                    Content-Length:響應體的大小,以字節為單位。
                    Server:生成響應的服務器軟件的信息。
                    Set-Cookie:設置客户端的Cookie信息。
                    Location:重定向的URL。
                    Content-Encoding:響應體的編碼方式。
                    Cache-Control:指定緩存策略。
  **十一.是否一定有相應:****不一定**。

                      從 HTTP 協議的**理論設計**和**實際通信場景**來看,存在兩種客户端收不到響應的情況:
                      1.  **底層傳輸層故障**
                            HTTP 基於 TCP 協議,若 TCP 連接建立失敗(比如服務器宕機、網絡中斷),客户端發送請求後,服務器根本沒收到,自然不會返回任何響應。
                            此時客户端會觸發**超時錯誤**。

                      2.  **特殊協議行為(極少場景)**
                            少數情況下,服務器收到請求後,因特殊需求(比如安全策略攔截惡意請求),會主動**丟棄請求不返回響應**,客户端最終也會因超時報錯。

                      **核心結論**:只有當 **TCP 連接正常建立 + 服務器成功接收並處理請求** 時,客户端才會收到 HTTP 響應。
  **十二.不同狀態碼的意思:**
                HTTP響應狀態碼由三位數字組成,表示服務器對客户端請求的處理結果。常見的狀態碼有:
                200 OK:請求成功。
                400 Bad Request:請求有誤,服務器無法理解請求。
                401 Unauthorized:請求需要認證。
                403 Forbidden:服務器拒絕訪問請求的資源。
                404 Not Found:請求的資源不存在。
                500 Internal Server Error:服務器遇到錯誤,無法完成請求。
                503 Service Unavailable:服務器無法處理請求,通常是由於服務器過載或維護。
  **十三.Http與Https協議有什麼區別:**
                 image-20251222110022013
  **十四.請求方法:**HTTP定義了幾種不同的請求方法,每種方法都有其特定的用途:
                  GET:請求指定的資源,通常用於獲取數據,不會修改服務器上的資源。
                  POST:向指定資源提交數據,通常用於創建或更新資源。
                  PUT:與POST相似,但它要求客户端在發送請求時提供整個資源的內容,通常用於更新現有資源。
                  DELETE:請求服務器刪除指定的資源。
                  HEAD:與GET相似,但不返回資源的內容,僅返回響應頭。
                  OPTIONS:請求服務器支持的HTTP方法。
                  PATCH:用於對資源進行局部更新。