一文搞懂HTTP和HTTPS協議

2022-05-01 16:48:08 字數 3185 閱讀 1876

1.什麼是協議?

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

2.http協議是什麼?

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

超文字傳輸協議:

「協議」:剛畢業時會簽乙個協議,例如三方協議。「協」字,代表的意思是必須有兩個以上的參與者,例如三方協議參與者:你、公司、學校;「議」:代表的意思是對參與者的一種行為和規範,三方協議有試用期期限等。

「傳輸」:所謂的傳輸很好理解,就是把一堆東西從a點搬到b點,或者從b點搬到a點。

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

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

3.http原理

http是乙個基於tcp/ip通訊協議來傳遞資料的協議,傳輸的資料型別為html檔案、檔案,查詢結果等。瀏覽器作為http客戶端通過url向http伺服器傳送所有請求。

4.http特點

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

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

靈活:http允許傳輸任意型別的資料物件。傳輸的型別由content-typr加以標記;各類請求方法都沒有被固定死允許開發人員自定義和補充

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

無狀態:無狀態的好處,因為伺服器不會記憶http狀態,所以不需要額外的資源來記錄狀態資訊,這能減輕伺服器的負擔,能夠更多地把cpu和記憶體用來對外提供服務;無狀態的壞處,既然伺服器沒有記憶能力,他在完成所有關聯行的操作會非常麻煩, 例如:登入->新增購物車->下單->結算->支付,這系列操作都要知道使用者的身份才行。但伺服器不知道這些請求是關聯的,每次都要問一遍身份資訊。

不安全:明文傳輸,內容可能被竊聽;不驗證通訊方的身份,有可能遭遇偽裝; 無法正在報文的完整性,有可能已遭篡改,比如網上植入垃圾廣告,視覺汙染,眼沒了;

對於無狀態的問題解決方案有多種,其中比較簡單的方式用cookie技術和session技術; cookie在通過請求和響應報文中寫入cookie資訊來控制客戶端的狀態。 

5.uri和url的區別

uri(統一資源識別符號):是用來表示乙個具體的資源的,我們可以通過uri知道乙個資源時什麼。     

url(統一資源定位符):是用來定位乙個具體的資源的,標示了乙個具體的資源位置,網際網路的每乙個檔案都有乙個唯一的url.

6.http報文組成

請求報文組成

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

2.請求頭(request header)

3.請求正文

響應報文組成

1.狀態行

2.響應頭

3.響應正文

7.常見請求方法

post和get的區別:

比如你開啟我的文章,瀏覽器就會傳送get請求給伺服器,伺服器就會返回文章的所有文字和資源

post,它向uri指定的資源提交資料,資料就放在報文的body裡,然後拼接好post請求頭,通過tcp協議傳送給伺服器

8.安全和冥等,以及get和post有安全和冥等嗎?

概念:所謂的「安全」是指請求方法不會「破壞」伺服器上的資源。所謂的「冥等」,意思是執行多次相同的操作,結果都是「相同」的。

那麼很明顯get的方法是安全冥等的,因為它是「唯讀操作」,無論操作多少次,伺服器上的資料是安全的,切每次結果是相同的。

post因為是「新增或者提交資料」的操作,會修改伺服器上的資源,所以是不安全的,且多次提交就會建立多個資源,所以是不「冥等」的。

9.響應狀態碼

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

狀態碼分類

常見狀態碼:

10.為什麼要用https?

http是超文字傳輸協議,資訊是明文傳輸,存在安全風險問題。https則解決http不安全的缺陷,在tcp和http網路層加入了ssl安全協議,使得報文能加密傳輸,通過ssl證書來驗證伺服器的身份,並為瀏覽器和服    務    器之間的通訊進行加密

ssl協議位於tcp/ip協議與各種應用層協議 之間,為資料通訊提供安全支援

11.瀏覽器在使用https傳輸資料的流程是什麼?

首先客戶端通過url訪問伺服器建立ssl鏈結。

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

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

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

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

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

12.https的缺點

13.總結https和http的區別

14. https解決了http的哪些問題

竊聽風險(獲取通訊內容,使用者賬號容易沒);篡改風險(強制植入垃圾廣告,視覺汙染);冒充風險(冒充****,使用者錢容易沒)。 

https是如何解決上面三個問題的?

在 pdflux 中開啟

在 pdflux 中開啟

無資料

一文就讓你搞懂http和https的通訊過程及區別

一 http與https的區別 1 埠 http埠號是 80 https埠號是 443 2 傳輸協議 http是超文字傳輸協議,屬於明文傳輸 https是安全的超文字傳輸協議,是經過ssl加密後的傳輸協議 3 安全性 https使用了tls ssl加密,比http更加的安全 4 證書 https需要...

一文搞懂transform skew

目錄 如何理解斜切 skew,先看乙個 demo。在下面的 demo 中,有 4 個正方形,分別是 紅色 不做 skew 變換,綠色 x 方向變換,藍色 y 方向變換,黑色 兩個方向都變換,拖動下面的滑塊可以檢視改變 skew 角度後的效果。切換 selector 可以設定 transform or...

一文搞懂併發和並行

併發和並行是兩個非常容易混淆的概念。它們都可以表示兩個或多個任務一起執行,但是偏重點有點不同。併發偏重於多個任務交替執行,而多個任務之間有可能還是序列的。併發是邏輯上的同時發生 simultaneous 而並行是物理上的同時發生。然而並行的偏重點在於 同時執行 並行 parallel 指在同一時刻,...