天天看點

HTTP用戶端服務端TCP連接配接内幕

HTTP用戶端服務端TCP連接配接内幕

 DNS(Domain Name System,域名系統),網際網路上作為域名和IP位址互相映射的一個分布式資料庫,能夠使使用者更友善的通路網際網路,而不用去記住能夠被機器直接讀取的 IP數串。通過主機名,最終得到該主機名對應的IP位址的過程叫做域名解析(或主機名解析)。DNS協定運作在UDP協定之上,使用端口号53。

         域名是為了友善記憶而專門建立的一套位址轉換系統,要通路一台網際網路上的伺服器,最終還必須通過IP位址來實作,域名解析就是将域名重新轉換為IP位址 的過程。一個域名對應一個IP位址,一個IP位址可以對應多個域名;是以多個域名可以同時被解析到一個IP位址。域名解析需要由專門的域名解析伺服器 (DNS)來完成。

        解析過程,比如,一個域名為:***.com,如果要通路網站,就要進行解析,首先在域名注冊商那裡通過專門的DNS伺服器解析到一個WEB伺服器的一個 固定IP上:211.214.1.***,然後,通過WEB伺服器來接收這個域名,把***.com這個域名映射到這台伺服器上。那麼,輸 入***.com這個域名就可以實作通路網站内容了.即實作了域名解析的全過程;

        人們習慣記憶域名,但機器間互相隻認IP位址,域名與IP位址之間是對應的,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成,整個過程是自動進行的。

        域名解析協定(DNS)用來把便于人們記憶的主機域名和電子郵件位址映射為計算機易于識别的IP位址。DNS是一種c/s的結構,客戶機就是使用者用于查找一個名字對應的位址,而伺服器通常用于為别人提供查詢服務。

        步驟1是用戶端向伺服器發出DNS請求然後DNS伺服器向用戶端回送IP響應。

HTTP與伺服器連接配接建立詳細(本文學習重點)

HTTP用戶端服務端TCP連接配接内幕

 TCP連接配接建立需要經過“三次握手”的過程:

        1)最初的用戶端TCP程序處于“CLOSE”(關閉)狀态。當用戶端準備發起一次TCP連接配接,進入“SYN-SEND”狀态時,它首先向處于 “LISTEN”(收聽)狀态的伺服器端TCP程序發送第一個“SYN”封包(控制位SYN=1).“SYN”封包包括源端口号和目的端口号,目的端口号 表示用戶端打算連接配接的伺服器程序号,以及一些連接配接參數。

        2)伺服器端在受到“SYN”封包之後,如果同意建立連接配接,則向用戶端發送第二個“SYN+ACK”封包(控制位SYN=1,ACK=1).該封包表示對 第一個“SYN”封包請求的确認,同時也給出了“端口”大小,這時伺服器進入“SYN-RCVD”狀态。

        3)在接收到"SYN+ACK"封包之後,用戶端發送第三個“ACK”封包,表示對“SYN+ACK”封包的确認。這時用戶端進入 “ESTABLISHED”(已建立連接配接)狀态。伺服器端在接收到“ACK”封包之後也進入“ESTABLISHED”(已建立連接配接)狀态。TCP協定是傳輸層協定,主要解決資料如何在網絡中傳輸。而HTTP是應用層協定,主要解決如何包裝資料。HTTP建立在TCP的基礎上。

繼續閱讀