簡單敘說http的要點

2021-10-09 07:57:30 字數 2871 閱讀 8751

tcp/ip協議族按層次分別劃分為:應用層,傳輸層,網路層和資料鏈路層

層次劃分

應用層(http,ftp,dns)

​ 決定了向使用者提**用服務時通訊的活動

傳輸層(tcp,udp)

​ 提供處於網路連線中的兩台計算機之間的資料傳輸

網路層(ip)

​ 選取合適的網路路徑到對方計算機並把資料報傳送給對方

資料鏈路層

​ 處理連線網路的硬體部分

先是作為傳送端的客戶端在應用層發出乙個想看某個web頁面的請求,http報文

為了傳輸方便,在傳輸層,分割http請求報文,給它打上標記序號和埠號,**給網路層,tcp報文段

網路層,把mac位址給它一起**給鏈路層,ip資料報

然後接收端的鏈路層接收到資料,按序往上層傳送,一直到應用層,才能算真正接收到由客戶端發來的http請求

把各種資料報傳送給對方 需要兩個重要條件:ip位址和mac位址路由選擇:選擇大致認為是對的位址進行傳送

為了準確傳送資料,將大的資料分割為以報文段為單位的資料報進行管理

還會先建立乙個三次握手的過程

保證安全的措施: 擁塞控制,流量控制,超時重傳,校驗和,序列號

網域名稱解析服務

提供網域名稱到ip位址的之間的解析服務

#使用者想要訪問乙個web頁面

#傳送方:

1.先傳送網域名稱到dns服務,收到dns服務的ip位址,給ip位址傳送請求

2.http協議,生成針對目標伺服器的請求報文

3. tcp協議,為了方便通訊,將http報文分割成多個報文段,每個報文段經過3次握手安全準確的傳送給對方

4.ip協議搜尋對方位址,一邊中轉一邊傳送

#接收方:

1. ip協議,經過中轉傳輸接收對方傳送

2. tcp協議,和對方進行3次握手,接受對方報文段,並按照原順序重組

3. http協議,對請求的內容進行處理

到達伺服器處理完畢後通過同樣的順序回傳

http請求報文
get /index.htm http/

1.1 方法+uri+http版本號

host: hackr.jp 請求首部字段

name=sad&age=

12 內容實體

http響應報文

http/1.1 200 ok           版本號  狀態碼 描述

date: tue,jul 2012 06:50:15 建立響應時間

content-type: text/html 實體的內容資源

http是一種不儲存狀態的協議,對於請求響應不會持久化

為什麼呢? 因為為了更快處理大量事務,確保協議的可伸縮性

如果需要狀態可以利用cookiesession技術

要保留無狀態,不用記住可以減輕cpu資源消耗,可以利用cookie技術在報文裡寫入cookie資訊來儲存狀態

cookie怎麼做到儲存狀態的

在伺服器響應報文裡面有乙個set-cookies的字段,會通知客戶端儲存cookie,下次客戶端再傳送請求的時候會自動在請求報文裡加入cookie值

伺服器會去檢查cookies是從哪乙個客戶端發來的連線請求,然後對比之前的記錄得到狀態

http1.1 的不同之處

在http1.1版本中使用的是長連線避免了每次頻繁tcp連線,建立一次可多次利用,但是需要雙方都支援這個版本

管線化: 可以多個請求並行傳送,不用等待上乙個響應

http還有分塊傳輸的能力,傳輸大資料分塊成十六進製制然後接收的時候再解碼,這樣可以逐步顯示頁面

狀態碼分類

分類描述

1**資訊,伺服器收到請求,需要請求者繼續執行操作

2**成功,操作被成功接收並處理

3**重定向,需要進一步的操作以完成請求

4**客戶端錯誤,請求包含語法錯誤或無法完成請求

5**伺服器錯誤,伺服器在處理請求的過程中發生了錯誤

http的缺點

通訊使用的明文,不加密,可能被竊聽

不驗證通訊方身份,所以可能被偽裝(dns劫持)

無法驗證報文的完整性

http再套上ssl安全套接層就變成了https

https這麼安全,為什麼不一直用它?

因為與純文字通訊的http相比,加密通訊會消耗更多的cpu及記憶體資源,如果每次都加密,會消耗更多的資源,因此如果是非敏感資訊則用http通訊,如果是個人資訊就用https加密通訊全套接層就變成了https**

https這麼安全,為什麼不一直用它?

因為與純文字通訊的http相比,加密通訊會消耗更多的cpu及記憶體資源,如果每次都加密,會消耗更多的資源,因此如果是非敏感資訊則用http通訊,如果是個人資訊就用https加密通訊特別是訪問量較多的web**在進行加密處理時,他們負載很重,如果全加密不敢想象,節約購買證書的開銷也是原因之一

http協議要點

1 tcp ip 協議族共分為4層 應用層 傳輸層 網路層以及鏈路層。各層的作用如下 1 應用層 應用層決定了向使用者提 用服務時通訊的活動。tcp ip 協議族內預存了各類通用的應用服務。比如,ftp filetransfer protocol,檔案傳輸協議 和 dns domain name s...

Http協議要點

客戶端連上伺服器後,向伺服器請求某個web資源,稱之為客戶端向伺服器傳送了乙個http請求。乙個完整的http請求包括如下內容 乙個請求行 若干訊息頭 以及請求正文,其中的一些訊息頭和正文都是可選的,訊息頭和正文內容之間要用空行隔開。乙個http響應代表伺服器向客戶端回送的資料。乙個完整的http響...

HTTP學習要點(二)

世界上幾乎所有的http通訊都由tcp ip承載,是一種常用的分組交換網路分層協議集,是可靠的 http連線實際上就是tcp連線和一些使用連線的規則 tcp為http提供了一條可靠的位元傳輸管道,通過名為ip分組的小資料塊傳送,http是http over tcp over ip這個協議棧的頂層,其...