HTTP是爲了知識共享而誕生,最初的設計理念是讓遠隔兩地的研究者們共享知識,藉助多文檔之間相互關聯造成的超文本,連成可相互參閱的 WWW(World Wide Web,萬維網)git
3項WWW 構建技術github
如今咱們都知道在網頁瀏覽器的地址欄中輸入URL能夠呈現Web頁面web
固然Web頁面不能憑空顯示出來,它是根據瀏覽器輸入的URl,瀏覽器從web服務器獲取文件資源等信息,從而顯示出web頁面瀏覽器
像這種經過發送請求獲取服務資源的web瀏覽器器等,都稱爲客戶端(client)服務器
從客戶端到服務器端獲取信息的一系列運做流程,須要雙方規定一些規則,以此來告知雙方本身須要什麼消息,咱們能夠將這些規則理解爲HTTP協議,即HTTP協議就是雙方通訊的規範。網絡
計算機與網絡設備要相互通訊,雙方就必須基於相同的方法。frontend
早期的計算機網絡,都是由各廠商本身規定一套通訊協議,互不兼容,帶來不一樣協議之間沒法通訊的弊端ide
爲了把世界全部不一樣類型的計算機鏈接起來,規定了一套全球通用的協議spa
由於互聯網協議包括上百種協議標準,可是最重要的兩個協議是TCP和IP協議,因此你們把互聯網的協議簡稱TCP和IP協議
HTTP 屬於TCP/IP協議內部的一個子集、一個協議標準
TCP/IP協議重要的一個概念是分層,咱們稱爲TCP/IP模型
分層的好處是,若是某個地方有變更,只需改變某層內部,只需把各層的之間的接口部分規劃好,每一個層次的內部設計能夠隨意改動
分層 | 內容 |
---|---|
應用層 | 向用戶提供應用服務時通訊的活動;FTP(文件傳輸協議)、DNS服務、HTTP協議等 |
傳輸層 | 提供處於網絡鏈接中計算機之間的數據傳輸;TCP(傳輸控制協議)、UDP(用戶數據報協議) |
網絡層 | 規定傳輸路線,傳輸數據包(數據包是網絡傳輸最小的數據單位) |
鏈路層 | 處理鏈接網絡的硬件部分 |
TCP/IP協議會經過分層順序與對方進行通訊
發送端在層與層之間傳輸數據時,每通過一層時一定會被打上一個該 層所屬的首部信息。反之,接收端在層與層傳輸數據時,每通過一層 時會把對應的首部消去
IP、TCP 和 DNS 是與HTTP密不可分的三個協議,接下來一一說明
IP協議位於網絡層,它的做用是把各類數據包傳送給對方
而要保證確實傳送到對方那裏,須要知足各種條件;其中兩個重要的條件是IP地址和MAC地址
IP地址指明節點被分配的地址,MAC地址指網卡所屬的固定地址
IP地址能夠和MAC地址配對,IP地址可變換,MAC地址基本不會更改
TCP協議位於傳輸層,提供可靠的字節流服務
字節流服務
字節流服務是指,爲了方便傳輸,將大塊數據分割成報文段爲單位的數據包進行管理,而TCP協議可以確認數據最終是否發送到對方
爲了保證通訊的可靠性,TCP協議採用了三次握手策略創建鏈接,TCP協議發送數據包後,會向對方確認是否發送成功
咱們將發送一次消息稱爲一次握手
TCP三次握手使用了TCP的標誌:SYN 和 ACK
若在握手的某個階段莫名中斷,TCP協議會以相同的順序發送相同的數據包
DNS服務和HTTP協議同樣位於應用層,DNS提供域名到IP地址之間的解析服務
計算機被賦予IP地址,經過IP地址能夠訪問頁面,與IP地址的一組數字相比,域名(字母數字的組合:好比www.baidu.com)更符合人們的記憶習慣,可是計算機擅長處理數字,爲了解決這一問題,DNS 服務應運而生