面試 HTTP HTTPS 協議

2022-06-26 07:45:10 字數 2988 閱讀 5609

網路協議是計算機之間為了實現網路通訊而達成的一種「約定」或者」規則「,有了這種」約定「,不同廠商的生產裝置,以及不同作業系統組成的計算機之間,就可以實現通訊。

http協議是超文字傳輸協議的縮寫,英文是hyper text transfer protocol。它是從web伺服器傳輸超文字標記語言(html)到本地瀏覽器的傳送協議。

設計http最初的目的是為了提供一種發布和接收html頁面的方法。

htpp有多個版本,目前廣泛使用的是http/1.1版本。

http是乙個基於tcp/ip通訊協議來傳遞資料的協議,傳輸的資料型別為html 檔案,、檔案, 查詢結果等。

http協議一般用於b/s架構()。瀏覽器作為http客戶端通過url向http服務端即web伺服器傳送所有請求。

http協議支援客戶端/服務端模式,也是一種請求/響應模式的協議。

簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有get、head、post。

靈活:http允許傳輸任意型別的資料物件。傳輸的型別由content-type加以標記。

無連線:限制每次連線只處理乙個請求。伺服器處理完請求,並收到客戶的應答後,即斷開連線,但是卻不利於客戶端與伺服器保持會話連線,為了彌補這種不足,產生了兩項記錄http狀態的技術,乙個叫做cookie,乙個叫做session。

無狀態:無狀態是指協議對於事務處理沒有記憶,後續處理需要前面的資訊,則必須重傳。

http使用統一資源識別符號(uniform resource identifiers, uri)來傳輸資料和建立連線。

uri 是用來標示 乙個具體的資源的,我們可以通過 uri 知道乙個資源是什麼。

url 則是用來定位具體的資源的,標示了乙個具體的資源位置。網際網路上的每個檔案都有乙個唯一的url。

請求行:包括請求方法、url、協議/版本

請求頭(request header)

請求正文

請求報文組成狀態行

響應頭響應正文

響應報文組成get請求

get請求

post請求

post請求

post和get的區別:

訪問乙個網頁時,瀏覽器會向web伺服器發出請求。此網頁所在的伺服器會返回乙個包含http狀態碼的資訊頭用以響應瀏覽器的請求。

狀態碼分類

常見狀態碼

實際使用中,絕大說的**現在都採用的是https協議,這也是未來網際網路發展的趨勢。下面是通過wireshark抓取的乙個部落格**的登入請求過程。

部落格登入抓包

可以看到訪問的賬號密碼都是明文傳輸, 這樣客戶端發出的請求很容易被不法分子擷取利用,因此,http協議不適合傳輸一些敏感資訊,比如:各種賬號、密碼等資訊,使用http協議傳輸隱私資訊非常不安全。

一般http中存在如下問題:

為了解決上述http存在的問題,就用到了https。

https 協議(hypertext transfer protocol over secure socket layer):一般理解為http+ssl/tls,通過 ssl證書來驗證伺服器的身份,並為瀏覽器和伺服器之間的通訊進行加密。

那麼ssl又是什麼?

ssl(secure socket layer,安全套接字層):2023年為 netscape 所研發,ssl 協議位於 tcp/ip 協議與各種應用層協議之間,為資料通訊提供安全支援。

tls(transport layer security,傳輸層安全):其前身是 ssl,它最初的幾個版本(ssl 1.0、ssl 2.0、ssl 3.0)由網景公司開發,2023年從 3.1 開始被 ietf 標準化並改名,發展至今已經有 tls 1.0、tls 1.1、tls 1.2 三個版本。ssl3.0和tls1.0由於存在安全漏洞,已經很少被使用到。tls 1.3 改動會比較大,目前還在草案階段,目前使用最廣泛的是tls 1.1、tls 1.2。

ssl發展史(網際網路加密通訊)

2023年netspace公司設計ssl協議(secure sockets layout)1.0版本,但未發布。

2023年netspace發布ssl/2.0版本,很快發現有嚴重漏洞

2023年發布ssl/3.0版本,得到大規模應用

2023年,發布了ssl公升級版tls/1.0版本,目前應用最廣泛的版本

2023年和2023年,發布了tls/1.1版本和tls/1.2版本

https資料傳輸流程首先客戶端通過url訪問伺服器建立ssl連線。

服務端收到客戶端請求後,會將**支援的證書資訊(證書中包含公鑰)傳送乙份給客戶端。

客戶端的伺服器開始協商ssl連線的安全等級,也就是資訊加密的等級。

客戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用**的公鑰將會話金鑰加密,並傳送給**。

伺服器利用自己的私鑰解密出會話金鑰。

伺服器利用會話金鑰加密與客戶端之間的通訊。

http https協議備忘

http hypertext transfer protocol,超文字傳輸協議 基於tcp連線 url uniform resource locator,統一資源定位符 用於指明網路資源的位址 http報文型別分為請求報文和響應報文 http請求報文由客戶端向服務端傳送 http請求報文由三部分組...

http,https協議解析

超文字傳輸協議 hypertext transfer protocol,http http預設使用80埠,https預設使用443埠.序號 組成部分描述1 請求行描述客戶端的請求方式 get,post 請求資源名稱 http協議版本號 2請求頭 客戶端請求的伺服器主機名,客戶端機器環境資訊3空行 換...

http https 協議(概略)

1.0 協議缺陷 法復 鏈結,完成即斷開,重新慢啟動和 tcp 3 次握 head of line blocking 線頭阻塞,導致請求之間互相影響 1.1 改進 連線 預設 keep alive 復 host 字段指定對應的虛擬站點 新增功能 斷點續傳 身份認證 狀態管理 cache 快取 cac...