HTTP系列之簡單入門HTTP協議

clipboard.png

傳輸層

"傳輸層"的功能,就是創建"端口到端口"的通訊。相比之下,"網絡層"的功能是創建"主機到主機"的通訊。只要肯定主機和端口,咱們就能實現程序之間的交流。所以,Unix系統就把主機+端口,叫作"套接字"(socket)。瀏覽器

UDP協議:

  如今,咱們必須在數據包中加入端口信息,這就須要新的協議。最簡單的實現叫作UDP協議,它的格式幾乎就是在數據前面,加上端口號。服務器

  "標頭"部分主要定義了發出端口和接收端口,"數據"部分就是具體的內容。而後,把整個UDP數據包放入IP數據包的"數據"部分,而前面說過,IP數據包又是放在以網絡

  太網數據包之中的,因此整個以太網數據包如今變成了下面這樣:架構

clipboard.png

TCP協議:

  UDP協議的優勢是比較簡單,容易實現,可是缺點是可靠性較差,一旦數據包發出,沒法知道對方是否收到。socket

  爲了解決這個問題,提升網絡可靠性,TCP協議就誕生了。這個協議很是複雜,但能夠近似認爲,它就是有確認機制的UDP協議,每發出一個數據包都要求確認。網絡傳輸協議

  若是有一個數據包遺失,就收不到確認,發出方就知道有必要重發這個數據包了。spa

  所以,TCP協議可以確保數據不會遺失。它的缺點是過程複雜、實現困難、消耗較多的資源。圖片

  TCP數據包和UDP數據包同樣,都是內嵌在IP數據包的"數據"部分。TCP數據包沒有長度限制,理論上能夠無限長,可是爲了保證網絡的效率,一般TCP數據包的ip

  長度不會超過IP數據包的長度,以確保單個TCP數據包沒必要再分割。資源

應用層:

"應用層"的做用,就是規定應用程序的數據格式。

HTTP協議:

    HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最爲普遍的一種網絡傳輸協議,全部的WWW文件都必須遵照這個標準。

    HTTP是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。

    HTTP是在網絡上傳輸HTML的協議,用於瀏覽器和服務器的通訊。

    HTTP協議工做於客戶端-服務端架構爲上。瀏覽器做爲HTTP客戶端經過URL向HTTP服務端即WEB服務器發送全部請求。

clipboard.png

  咱們已經知道,網絡通訊就是交換數據包。電腦A向電腦B發送一個數據包,後者收到了,回覆一個數據包,從而實現兩臺電腦之間的通訊。數據包的結構,基本上是下面這樣

clipboard.png

  發送這個包,須要知道兩個地址:

    * 對方的MAC地址

    * 對方的IP地址

  數據包的目標地址,實際上分紅兩種狀況:

    場景 數據包地址

   同一個子網絡 對方的MAC地址,對方的IP地址

  非同一個子網絡 網關的MAC地址,對方的IP地址

  DNS協議能夠幫助咱們,將這個網址轉換成IP地址。

  咱們要判斷,這個IP地址是否是在同一個子網絡,這就要用到子網掩碼。

相關文章
相關標籤/搜索