初識HTTP協議 基礎

2021-10-24 07:59:33 字數 2256 閱讀 3059

​ 事實上,我們的生活已經是離不開網路了,但是網路的背後是在一系列的協議下規範的執行著,今天就說下,只要你上網,就離不開默 默為你服務的http協議。但是在享受網路生活時,我們對於http一無所知,http是什麼?http 協議是怎麼來的?

圖說http歷史:

這裡我們不對協議的歷史過多的描述,如果你感興趣的話,可以讀一讀《**http》以及 極客時間的專欄《透視http協議》

web三項關鍵技術:

**url:

在平時的開發中,對於url的使用與認知最深,但對於uri、url、urn,三者,有時候不容易區分它們。這裡**一波

更多的資料及認識可以參考這兩篇部落格:uri 與 url、urn 與 uri、url和urn的區別

http的定義:

http協議(hypertext transfer protocol,超文字傳輸協議)是網際網路上應用最為廣泛的一種網路傳輸協議,所有的www檔案都必須遵守這個標準。

詳解http定義:

上面的說法自然是準確,但是太過於簡單了,可能不是面試官想要的。當然嚴格上來說,協議應該包括語法、語義、同步規則以及錯誤處理等

從上面的定義我們將http定義拆開,分成三部分,超文字傳輸協議

什麼不是http

http協議的背後依賴:

在web世界中,不是光靠乙個http協議的,而是由協議的集合支撐著網路世界,這個集合就是tcp/ip協議族。

事實上,http 是應用層的協議之一,通常跑在 tcp/ip 協議棧之上,依靠 ip 協議實現定址和路由、tcp 協議實現可靠資料傳輸、dns 協議實現網域名稱查詢、ssl/tls 協議實現安全通訊。

tcp/ip協議族(四層模型)

事實上,網路之間的通訊是分層的,因為如果把整個協議族放在單層執行的話,那是混亂的,沒有邏輯,同時協議不是一成不變的,一旦協議有所改動的話,如果不分層,就需要把整體換掉。

同時,使用分層時,僅需要替換改變的層的內容,只需要把每層之間的介面部分定義規劃好,那麼各層內部就可以隨意改變,更加靈活自由,在設計上也簡單很多

上圖是我畫的**—tcp/ip四層模型,更多關於四層模型的知識可以參考部落格 tcp/ip協議族四層模型簡述、tcp/ip四層模型及各層協議首部詳述、tcp/ip協議族四層模型簡述

tcp\ip協議資料流示意圖

傳送端傳送資料時,資料會從上層傳輸到下層,且每經過一層都會被打上該層的頭部資訊。而接收端接收資料時,資料會從下層傳輸到上層,傳輸前會把下層的頭部資訊刪除

tcp三次握手可靠連線:

所謂的三次握手即tcp連線的建立。這個連線必須是一方主動開啟,另一方被動開啟的。以下為客戶端主動發起連線的**:

簡述一下為什麼要有三次握手,首先tcp協議是提供可靠的連線的,之所以要有3次握手,就是為了確認雙方的收發能力都是正常的

這裡只是對三次握手做乙個簡單的描述,更多詳細的資料,可以參考部落格 詳解 tcp 連線的「 三次握手 」與「 四次揮手 」

dns與http的羈絆:dns網域名稱系統,上面我們說到計算機世界是靠ip位址來定位的,而dns就是幫我們把網域名稱轉化為ip位址的

畫了簡單的dns網域名稱解析**,事實上網域名稱解析的過程是比較複雜的,詳細的資料可以參考這個 dns解析詳細講解、dns(網域名稱系統)解析

在經過上面的講解的http與tcp/ip協議族的關聯後,大致上我們也能想到一次web請求的過程

針對於更詳細的知識點,可以參考部落格 一次web請求過程詳解

HTTP協議 初識HTTP

一 web網路基礎 客戶端 伺服器 首先作為傳送端的客戶端在應用層 http協議 發出乙個想看某個web頁面的http 請求。http報文傳送到傳輸層 tcp協議 為了傳輸方便,傳輸層把接收到的資料進行分割,並在各個報文上打上標記序號及埠號後 到網路層。網路層 ip協議 增加作為通訊目的位址的mac...

初識HTTP協議

url urlencode 對提交字串中的特殊字元進行轉義編碼,防止產生歧義 urldecode 對已編碼的url進行解碼 http協議格式 http協議格式分為四個部分 首行 頭部 空格 正文 首行 請求首行 由請求方法 url 協議版本三部分組成,由空格間隔,並且以 r n結尾 請求方法 pos...

初識HTTP協議

http,超文字傳輸協議 hypertext transfer protocol 是網路五層模型中的應用層的協議。作用是處理資源的請求響應過程。如圖,http就是定義了請求端和應答端之間通訊的格式 如果說把tcp ip協議比作是快遞,通過ip和port將物品送至到正確的買家,那麼http這樣的應用層...