Http協議詳解

2021-08-01 18:39:28 字數 1976 閱讀 8152

學過計算機網路的應該都知道網際網路的分層模型:

兩台主機需要進行通訊,都是按照這個層次進行處理的。不同的是:客戶端向服務端傳送訊息之後,訊息會由上到下一步步被處理;而服務端是由底層先接收到訊息,然後由下到上一步步處理解析得到由客戶端發來的資訊。伺服器返回響應的過程與此類似。下圖很清楚的表達了整個過程。

那麼每一層的作用是什麼呢?

物理層:將主機連起來,不論是通過雙絞線,光纖還是無線電波等等。

資料鏈路層:僅僅將主機連起來,那如何知道傳輸的訊號是什麼意思?資料鏈路層就會規定多少位位元表示什麼意思,依照這種規則去解析內容。依照的這種規則就叫做協議。不管是資料鏈路層,還是ip層也好,tcp層,http層都是需要協議的。資料鏈路層有乙太網協議。

網路層:如果兩個主機在乙個區域網裡面,只需要資料鏈路層就可以了,但對於不在乙個區域網中的兩個主機來說,就需要知道對方的網路位址才可以傳輸,網路層主要就是解決這種問題,如何將資訊傳輸到不同網路;

傳輸層:每個主機都有很多個應用程序,如何確定客戶端發來的訊息是發給哪個應用程式的,這就是傳輸層主要幹的事情,也就解釋了tcp是端到端的協議,而ip層是主機到主機的協議。

應用層:主要處理在應用層的一些活動。主要包括ftp協議(檔案傳送協議),dns(網域名稱解析服務),http(超文字傳輸協議)等等。這是最接近使用者的一層,也是我們做前端開發必須掌握的一層。

http協議說到底也就是一種規範,規定了如何去封裝資料和解析資料,並且客戶端也伺服器之間的通訊主要是利用http協議來實現通訊的。

當使用者訪問某個**時,輸入乙個**,例如www.baidu.com。首先客戶端會利用dns協議將該**解析成ip位址(220.181.112.244)。

這個可以通過一台能上網的主機去測試:

然後回車之後就會傳送乙個http請求報文給伺服器。請求報文格式是這樣的:

當伺服器收到客戶端的http請求報文之後,將其報文資料取獲取到,並根據這個內容去進行一些操作,然後將對應的響應資料封裝到http響應報文裡面,發回給客戶端。客戶端接收到的http響應報文可以看下圖:

http響應首部:

content-encoding:gzip //編碼方式

content-type:text/html;charset=utf-8 //響應內容的型別

date:wed, 31 may 2017 09:05:55 gmt //伺服器響應時間

expires:wed, 31 may 2017 09:05:55 gmt //過期時間

最後還有乙個通用首部,這是請求報文和響應報文中都有的

到這裡,利用http協議進行客戶端與服務端互動的過程大致就是這樣。當然。在http協議還有很多細節,比如請求首部有哪些,響應首部有哪些,以及http響應碼,以及如何安全地傳輸報文都還有待更進一步的理解。

Http協議詳解 Http請求詳解

http是hypertext transfer protocol 超文字傳輸協議 的簡寫,它是tcp ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程。客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵守一定的通訊格式,http協議用於定義客戶端與w...

Http協議詳解

http協議是乙個基於tcp ip 的協議,使用的是一種請求 響應模型 目前的版本為1。1,但有一些 仍然使用1。0的版本,在待會的實驗中,我們可以看到,網易的主頁163.com仍舊使用的1.0的標準。1 何為請求 響應機制 在這一種機制中,總是客戶端請求伺服器,伺服器接受響應後根據請求端的請求資訊...

HTTP協議詳解

head to inde x.html not supported.invalid method in request head htp 1.1 apache 1.3.12 server at www.fudan.edu.cn port 80 關於實體頭部的內容還可以有 last modified ...