http請求 uni 封裝 探索HTTP之旅

2021-10-12 20:10:04 字數 2564 閱讀 3834

探索http首先要知道什麼是http?

http是乙個簡單的請求-響應協議,它通常執行在tcp之上。它指定了客戶端可能傳送給伺服器什麼樣的訊息以及得到什麼樣的響應。請求和響應訊息的頭以ascii碼形式給出;而訊息內容則具有乙個類似mime的格式。這個簡單模型是早期web成功的有功之臣,因為它使開發和部署非常地直截了當。

以上就是對http協議的一種理解,總結為:客戶端與伺服器通過這樣的一種協議實現了彼此之間的通訊,客戶端傳送的請求服務端可以解析並執行響應的操作,最後將得到的結果返回給客戶端,客戶端收到響應訊息並解析展示。

說完了http協議,知道了http協議是什麼,那麼就開始探索平時發乙個http請求到底會經過怎樣的乙個過程,看看http之旅到底是不是很玄幻?

探索第一站,瀏覽器站

第一站就是在我們發請求的瀏覽器,學過計算機網路的都知道,在網際網路中尋找乙個主機都是通過ip來尋找的,那麼在網路層中路由器只能通過ip來尋找目的主機,那麼我們如果輸入www.baidu.com,路由器咋知道在哪個伺服器,所以我們要在瀏覽器將www.baidu.com翻譯一下,翻譯成計算機網路中可以識別的位址,也就是ip。

探索第二站,封裝http資料報站

封裝http資料報,首先知道什麼是http資料報,http資料報由請求行、請求頭部、空行和請求資料四部分組成。

請求頭部就是我們開啟瀏覽器檢視network中的檢視到的requestheader。

請求資料呢就是我們傳送的資料了。

所以這一站的總結就是將協議中需要的http資料封裝到我們請求中,然後到下一站。總結一句話對什麼進行怎樣的操作!

探索第三站,封裝tcp資料報站

上一站已經封裝好了http資料報那麼能請求了嗎?答案是不能,因為這時候才進入到網路中,那麼進入到網路中就要經過傳輸層,在傳輸層中tcp就要起作用了。tcp登場!

封裝tcp資料報,到底封裝的是什麼呢?如果知道tcp的就知道其實封裝了tcp首部,在傳輸層需要對資料進行封裝tcp首部,在tcp首部中包含了我要傳送給伺服器的各種資訊,比如源埠、目睹埠、確認號、順序號等等。可以看我另一篇文章詳細分析計算機網路中的傳輸層。

這一站就到了傳輸層中,在傳輸層中被進行了tcp封裝,攜帶著網路中需要的各種資訊進入下一站。

探索第四站,建立tcp連線站

所以這一戰就是建立連線的過程,這裡依賴於傳輸層中的tcp建立連線,通過三次握手實現客戶端與服務端的連線。

探索第五站,傳送站

到了這裡資料都封裝好了,連線也建立好了,客戶端終於可以傳送請求了,這時候客戶端就可以傳送自己的http請求了,因為彼此已經建立連線了所以客戶端傳送請求服務端也可以收到請求。

客戶端傳送了http請求,就等著響應就好了,剩下的事就是服務端去做了。

探索第六站,服務端響應站

這一站就是服務端的事情了,伺服器接收到客戶端的請求,根據請求對相應資源執行客戶端請求中的操作,客戶端執行結束得到響應資料,然後服務端將響應資料返回給客戶端,響應資料報含客戶端想要的資料以及狀態碼

這一站的總結就是服務端對客戶端請求的資源執行get、post.....操作,得到響應資料返回給客戶端。

探索第六站,客戶端接收響應訊息站

客戶端又登場了,服務端返回訊息了,客戶端要起來處理了,為啥要處理響應訊息呢?舉個?:

如果服務端返回了乙個網頁,如果不對這個網頁做渲染,結果就是頁面在瀏覽器展示是亂七八糟的,那麼正常人怎麼受得了,所以瀏覽器很負責的渲染好展示給我們。

這一站總結就是瀏覽器收到響應訊息渲染最後展示給使用者!

探索?站,關閉站

客戶端與服務端都完成了彼此的任務,互動也結束了那麼這個前面建立的tcp連線也可以關閉了,不然浪費資源啊,資源在計算機中是很寶貴的東西!

到這裡整個從瀏覽器請求資料的全過程就結束了?,當然了這其中涉及到更細節的一些問題比如物理層、資料鏈路層、網路層等沒有具體細說,這些知識還是後續再寫吧!

到這裡本該結束,那麼了解了http順便了解下https吧!

為什麼我們有了http還要用https呢?你會說提高安全性,那麼為什麼http不安全呢?

這裡我自己的乙個淺顯的理解就是http對於資料都是明文傳輸,那麼如果傳輸過程中資料報被劫持那麼就可以通過資料報做一些bad things!所以這就需要https來保證安全性了!

https在http基礎上加入ssl協議,ssl協議依靠證書來驗證伺服器的身份,並對傳輸的資料進行加密,保障資料的安全性。這個過程大致為:傳送https請求、得到返回證書、對證書驗證、金鑰交換、資料傳輸。

http請求 uni 封裝 uniApp請求封裝

1,新建config.js檔案,用於集中控制關鍵key let config 判斷環境,以使用對應請求網域名稱 config.url process.env.node env development window undefined process.env.node env development ...

angular中的http請求封裝

1 新建ts檔案 工具類 httputils.service.ts name http服務 describe 對http請求做統一處理 統一傳送請求 param params returns promise public request params any any else get請求 param...

Android中Http請求類的封裝

在android的網路開發中,會常用到http請求,為了避免 的重複編寫,我們要學會封裝乙個http請求類。方法1 public class network catch jsonexception e 首先在makehttpresquest 的方法中建立http post聯機 defaulthttp...