<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 概念 Hypertext Transfer Protocol, 超文本傳輸(轉移)協議,是客戶端和服務端傳輸文本制定的協議。構建WWW的具體的三項技術如下: WWW: world wide web, 萬維網 - HTML: Hypertext Markup Language, 超文本標記語言 - HTTP: Hypertext Transfer Protocol, 超文本傳輸(轉移)協議 (HTTP是TCP/IP的應用層協議) - URL: Uniform Resource Locator, 統一資源定位符號 > URI: Uniform Resource Identitier, 統一資源標示符號,URL是URI的子集 ## TCP/IP ``` 應用層(http/https/websocket/ftp...) => 定義:文本傳輸協議 | 傳輸層(tcp/udp) => 定義:端口 | 網絡層(ip) => 定義:IP | 鏈路層(mac&數據包) => 定義:數據包,MAC地址 | 實體層(光纜/電纜/交換機/路由/終端...) => 定義:物理 ``` TCP/IP: - 解釋一:分別代表tcp協議和ip協議 - 解釋二:如果按照網絡五層架構,TCP/IP代表除了應用層其他層所有協議簇的統稱 TCP/IP connect: TCP/IP的三次握手: ``` 標有syn的數據包 -------------> 標有syn/ack的數據包 client <------------- server 標有ack的數據包 --------------> ``` TCP/IP finish: TCP/IP的四次握手: ``` fin <------------- ack client(或server) -------------> server(或client) fin -------------> ack <------------- ``` ## HTTP 報文 HTTP 報文由三部分組成: - Start Line - Headers - Entity Body HTTP 報文分為兩類: - 請求報文 - 響應報文 ### 請求報文Start Line 語法 : <方法> <請求URL> <版本> #### HTTP Method + get: 獲取資源,不攜帶http body,支持查詢參數,大小2KB + post: 傳輸資源,http body, 大小默認8M,1000個input variable + put: 傳輸資源,http body,資源更新 + delete: 刪除資源,不攜帶http body + patch: 傳輸資源,http body,存在的資源局部更新 + head: 獲取http header,不攜帶http body + options: 獲取支持的method,不攜帶http body + trace: 追蹤,返回請求回環信息,不攜帶http body + connect: 建立隧道通信 ### 響應報文Start Line 語法 : <方法> <狀態碼> <原因短語> #### HTTP Status Code + 200: ok + 301: 永久重定向 + 302: 臨時重定向 + 303: 臨時重定向,要求用get請求資源 + 304: not modified, 返回緩存,和重定向無關 + 307: 臨時重定向,嚴格不從post到get + 400: 參數錯誤 + 401: 未通過http認證 + 403: forbidden,未授權 + 404: not found,不存在資源 + 500: internet server error,代碼錯誤 + 502: bad gateway,fastcgi返回的內容web server不明白 + 503: service unavailable,服務不可用 + 504: gateway timeout,fastcgi響應超時 ### HTTP Header Fields 常見通用頭部 + Cache-Control: - no-cache: 不緩存過期的緩存 - no-store: 不緩存 + Pragma: no-cache, 不使用緩存,http1.1前的歷史字段 + Connection: - 控制不在轉發給代理首部不字段 - Keep-Alive/Close: 持久連接 + Date: 創建http報文的日期 常見請求頭 + Accept: 可以處理的媒體類型和優先級 + Host: 目標主機域名 + Referer: 請求從哪發起的原始資源URI + User-Agent: 創建請求的用戶代理名稱 + Cookie: cookie信息 常見響應頭 + Location: 重定向地址 + Server: 被請求的服務web server的信息 + Set-Cookie: 要設置的cookie信息 - NAME: 要設置的鍵值對 - expires: cookie過期時間 - path: 指定發送cookie的目錄 - domain: 指定發送cookie的域名 - Secure: 指定之后只有https下才發送cookie - HostOnly: 指定之后javascript無法讀取cookie + Keep-Alive: HTTP協議初期每次連接結束后都會斷開TCP連接,之后HEADER的connection字段定義Keep-Alive(HTTP 1.1 默認 持久連接),代表如果連接雙方如果沒有一方主動斷開都不會斷開TCP連接,減少了每次建立HTTP連接時進行TCP連接的消耗。 ## Cookie/Session + Cookie: 工作機制是用戶識別和狀態管理,服務端為了管理用戶的狀態會通過客戶端,把一些臨時的數據寫入到設備中Set-Cookie,當用戶訪問服務的時候,服務可以通過通信的方式取回之前存放的cookie。 + Session: 由于http是無狀態的,請求之間無法維系上下文,所以就出現了session作為會話控制,服務端存放用戶的會話信息。 ## HTTPs 概念:在http協議上增加了ssl(secure socket layer)層。 ``` SSL層 | 應用層 | 傳輸層 | 網絡層 | 鏈路層 | 實體層 ``` HTTPS 認證流程 ``` 發起請求 --------------------------->  server 下發證書 <--------------------------- server 證書數字簽名(用證書機構公鑰加密) --------------------------->  證書機構 證書數字簽名驗證通過 client(內置證書機構證書) <--------------------------- 證書機構 公鑰加密隨機密碼串(未來的共享秘鑰) --------------------------->  server私鑰解密(非對稱加密) SSL協議結束 HTTP協議開始 <--------------------------- server(對稱加密) 共享秘鑰加密 HTTP --------------------------->  server(對稱加密) ``` + 核對證書證書: 證書機構的公開秘鑰驗證證書的數字簽名 + 公開密鑰加密建立連接:非對稱加密 + 共享密鑰加密 ## Websocket + 基于http協議建立連接,header的upgrade字段轉化協議為websocket + 全雙工通信,客戶端建立連接 ## HTTP2 + 多路復用:多個請求共享一個tcp連接 + 全雙工通信 + 必須https:// + 頭部壓縮 + 二進制傳輸
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看