<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # http協議 ****** 超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最廣泛的一種網絡協議。所有的 WWW 文件都必須遵守這個標準。設計 HTTP 最初的目的是為了提供一個發布和接收 HTML 頁面的方法。1960年美國人 Ted Nelson 構思了一種通過計算機處理文本信息的方法,并稱之為超文本(hypertext),這成為了 HTTP 超文本傳輸協議標準架構的發展根基。Ted Nelson 組織協調萬維網協會(World Wide Web Consortium)和互聯網工程工作小組(Internet Engineering Task Force)共同合作研究,最終發布了一系列的 RFC,其中著名的 RFC 2616 定義了 HTTP 1.1。 <br /> ## 技術架構 HTTP 是一個客戶端和服務器端請求和應答的標準(TCP)。客戶端是終端用戶,服務器端是網站。通過使用 Web 瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口為 80)的 HTTP 請求。(我們稱這個客戶端)叫用戶代理(user agent)。應答的服務器上存儲著(一些)資源,比如 HTML 文件和圖像。(我們稱)這個應答服務器為源服務器(origin server)。 在用戶代理和源服務器中間可能存在多個中間層,比如代理、網關或者隧道(tunnels)。盡管 TCP/IP 協議是互聯網上最流行的應用,HTTP 協議并沒有規定必須使用它和(基于)它支持的層。事實上,HTTP 可以在任何其他互聯網協議上,或者在其他網絡上實現。HTTP 只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。 通常,由 HTTP 客戶端發起一個請求,建立一個到服務器指定的端口(默認是80端口)的 TCP 連接。HTTP 服務器則在那個端口監聽客戶端發送過來的請求。一旦收到請求,服務器(向客戶端)發回一個狀態行,比如“HTTP/1.1 200 OK”,和(響應的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。 HTTP 使用 TCP 而不是 UDP 的原因在于(打開)一個網頁必須傳送很多數據,而 TCP 協議提供傳輸控制,按順序組織數據,和錯誤糾正。 通過 HTTP 或者 HTTPS 協議請求的資源由統一資源標示符(Uniform Resource Identifiers)(或者,更準確一些,URLs)來標識。 ![](https://box.kancloud.cn/251858c03adbbc37b41db444ad7c92a5_396x300.jpg) <br /> ## 過程解析 http 一次請求過程大概如下: * 用戶在瀏覽器輸入www.easyswoole.com * dns服務器解析/或者本機 hosts,路由器 hosts 對比獲得 ip * 瀏覽器訪問默認端口80,則訪問的 tcp 地址為 ip:80 * tcp協議3次握手,建立連接 * 發送一個 http request 請求頭 * 服務器獲得 http request 請求頭,表明該次訪問為 http 訪問,解析 http 請求頭,獲得請求類型,請求格式,以及請求數據(cookie、get、post數據) * 服務器發送 response 響應數據,主動斷開 * 瀏覽器接收 response 響應數據,解析響應文本類型,解析數據,斷開連接 > https協議中,在請求以及響應時多了一層 tls,ssl 加密解密協議,默認端口從 80 變成了 443 <br /> ## phper中的http 由于 php 大部分時候都是用于 web 服務器,所以 php 開發者接觸最多的協議也就是基于 tcp/ip 協議的 http 協議了。在 php 初級程序員中,其實沒詳細的了解過 http 協議,但是可以通過瀏覽器的 f12->network 去查看 http 協議具體的請求頭,以及服務端發送響應頭。
                  <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>

                              哎呀哎呀视频在线观看