簡單理解HTTP和HTTPS

2021-09-09 07:42:50 字數 3384 閱讀 2967

https特點:

http與https的區別

什麼是http協議無狀態協議?

怎麼解決http協議無狀態協議?

常見的http相應狀態碼

運用與總結

超文字傳輸協議,是乙個基於請求與響應,無狀態的,應用層的協議,常基於tcp/ip協議傳輸資料,網際網路上應用最為廣泛的一種網路協議,所有的www檔案都必須遵守這個標準。設計http的初衷是為了提供一種發布和接收html頁面的方法。

這個akamai公司建立的乙個官方的演示,使用http/1.1和http/2同時請求379張,觀察請求的時間,明顯看出http/2效能佔優勢。

多路復用:通過單一的http/2連線請求發起多重的請求-響應訊息,多個請求stream共享乙個tcp連線,實現多留並行而不是依賴建立多個tcp連線。

客戶端輸入url回車,dns解析網域名稱得到伺服器的ip位址,伺服器在80埠監聽客戶端請求,埠通過tcp/ip協議(可以通過socket實現)建立連線。http屬於tcp/ip模型中的運用層協議,所以通訊的過程其實是對應資料的入棧和出棧。

報文從運用層傳送到運輸層,運輸層通過tcp三次握手和伺服器建立連線,四次揮手釋放連線。具體請看理解http三次握手和四次握手的過程

https是一種通過計算機網路進行安全通訊的傳輸協議,經由http進行通訊,利用ssl/tls建立全通道,加密資料報。https使用的主要目的是提供對**伺服器的身份認證,同時保護交換資料的隱私與完整性。

ps:tls是傳輸層加密協議,前身是ssl協議,由網景公司2023年發布,有時候兩者不區分。

基於http協議,通過ssl或tls提供加密處理資料、驗證對方身份以及資料完整性保護

內容加密:採用混合加密技術,中間者無法直接檢視明文內容

驗證身份:通過證書認證客戶端訪問的是自己的伺服器

保護資料完整性:防止傳輸的內容被中間人冒充或者篡改

client向server傳送請求然後連線到server的443埠。

服務端必須要有一套數字證書,可以自己製作,也可以向組織申請。區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面,這套證書其實就是一對公鑰和私鑰。

傳送證書

這個證書其實就是公鑰,只是包含了很多資訊,如證書的頒發機構,過期時間、服務端的公鑰,第三方證書認證機構(ca)的簽名,服務端的網域名稱資訊等內容。

客戶端解析證書

這部分工作是由客戶端的tls來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出乙個警告框,提示證書存在問題。如果證書沒有問題,那麼就生成乙個隨即值(秘鑰)。然後用證書對該隨機值進行加密。

傳送加密資訊

這部分傳送的是用證書加密後的秘鑰,目的就是讓服務端得到這個秘鑰,以後客戶端和服務端的通訊就可以通過這個隨機值來進行加密解密了。

服務段加密資訊

服務端用私鑰解密秘密秘鑰,得到了客戶端傳過來的私鑰,然後把內容通過該值進行對稱加密。

傳輸加密後的資訊

這部分資訊是服務端用私鑰加密後的資訊,可以在客戶端被還原。

客戶端解密資訊

客戶端用之前生成的私鑰解密服務端傳過來的資訊,於是獲取了解密後的內容。

http 的url 以http:// 開頭,而https 的url 以https:// 開頭 http 是不安全的,而 https 是安全的

http 標準埠是80 ,而 https 的標準埠是443 在osi 網路模型中,http工作於應用層,而https

的安全傳輸機制工作在傳輸層 http 無法加密,而https 對傳輸的資料進行加密 http無需證書,而https

需要ca機構wosign的頒發的ssl證書

無狀態協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊

也就是說,當客戶端一次http請求完成以後,客戶端再傳送一次http請求,http並不知道當前客戶端是乙個」老使用者「。

1.通過cookie/session技術

2.http/1.1持久連線(http keep-alive)方法,只要任意一端沒有明確提出斷開連線,則保持tcp連線狀態,在請求首部欄位中的connection: keep-alive即為表明使用了持久連線

200:請求被正常處理

204:請求被受理但沒有資源可以返回

206:客戶端只是請求資源的一部分,伺服器只對請求的部分資源執行get方法,相應報文中通過content-range指定範圍的資源。

301:永久性重定向

302:臨時重定向

303:與302狀態碼有相似功能,只是它希望客戶端在請求乙個uri的時候,能通過get方法重定向到另乙個uri上

304:傳送附帶條件的請求時,條件不滿足時返回,與重定向無關

307:臨時重定向,與302類似,只是強制要求使用post方法

400:請求報文語法有誤,伺服器無法識別

401:請求需要認證

403:請求的對應資源禁止被訪問

404:伺服器無法找到對應資源

500:伺服器內部錯誤

503:伺服器正忙

https協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用

ssl證書的信用鏈體系並不安全,特別是在某些國家可以控制ca根證書的情況下,中間人攻擊一樣可行

中間人攻擊(mitm攻擊)是指,黑客攔截並篡改網路中的通訊資料。又分為被動mitm和主動mitm,被動mitm只竊取通訊資料而不修改,而主動mitm不但能竊取資料,還會篡改通訊資料。最常見的中間人攻擊常常發生在公共wifi或者公共路由上。

ssl證書需要購買申請,功能越強大的證書費用越高

ssl證書通常需要繫結ip,不能在同一ip上繫結多個網域名稱,ipv4資源不可能支撐這個消耗(ssl有擴充套件可以部分解決這個問題,但是比較麻煩,而且要求瀏覽器、作業系統支援,windows xp就不支援這個擴充套件,考慮到xp的裝機量,這個特性幾乎沒用)。

根據acm conext資料顯示,使用https協議會使頁面的載入時間延長近50%,增加10%到20%的耗電。

https連線快取不如http高效,流量成本高。

https連線伺服器端資源占用高很多,支援訪客多的**需要投入更大的成本。

https協議握手階段比較費時,對**的響應速度有影響,影響使用者體驗。比較好的方式是採用分而治之,類似12306**的主頁使用http協議,有關於使用者資訊等方面使用https。

HTTP 與HTTPS 簡單理解

http協議,即超文字傳輸協議 hypertext transfer protocol 是一種詳細規定了瀏覽器和全球資訊網 www world wide web 伺服器之間互相通訊的規則,通過網際網路傳送全球資訊網文件的資料傳送協議 http協議是用於從www伺服器傳輸超文字到本地瀏覽器的傳送協議。...

https簡單理解

概念 https全稱為hyper text transfer protocol over securesocket layer,是以安全為目標的http協議,它在http的基礎上,在應用層新增了ssl tls,保證傳輸內容的私密性,常用於支付交易等環節。除了ssl層的新增,ca中心的認證是也是htt...

Https的簡單理解

http的缺點在於 沒有對資訊進行加密處理,通過網路監聽可以得到網路中傳輸的資料,這樣就沒有資訊保安了。http也沒有對 的真實性進行認證,這使得 的真實性存在疑問。通過ssl,對傳輸中的資訊進行加密和對 進行認證管理,就能基本上保證資訊的安全了和 的真實性。首先服務端通過向ca機構申請認證得到自己...