談下 http 1.0 和 1.1、1.2 的主要變化?
http1.1 的主要變化:
http1.0 經過多年發展,在 1.1 提出了改進。首先是提出了長連線,http 可以在一次 tcp 連線中不斷傳送請求。
然後 http1.1 支援只傳送 header 而不傳送 body。原因是先用 header 判斷能否成功,再發資料,節約頻寬,事實上,post 請求預設就是這樣做的。
http1.1 的 host 字段。由於虛擬主機可以支援多個網域名稱,所以一般將網域名稱解析後得到 host。
http2.0 的主要變化:
http2.0 支援多路復用,同乙個連線可以併發處理多個請求,方法是把 http資料報拆為多個幀,併發有序的傳送,根據序號在另一端進行重組,而不需要乙個個 http請求順序到達;
http2.0 支援服務端推送,就是服務端在 http 請求到達後,除了返回資料之外,還推送了額外的內容給客戶端;
http2.0 壓縮了請求頭,同時基本單位是二進位制幀流,這樣的資料占用空間更少;
http2.0 適用於 https 場景,因為其在 http和 tcp 中間加了一層 ssl 層。
https 的工作過程?
客戶端傳送自己支援的加密規則給伺服器,代表告訴伺服器要進行連線了;
伺服器從中選出一套加密演算法和 hash 演算法以及自己的身份資訊(位址等)以證書的形式傳送給瀏覽器,證書中包含伺服器資訊,加密公鑰,證書的辦法機構;
3.2 果驗證通過證書,瀏覽器會生成一串隨機數,並用證書中的公鑰進行加密;
3.3 用約定好的 hash 演算法計算握手訊息,然後用生成的金鑰進行加密,然後一起傳送給伺服器。
伺服器接收到客戶端傳送來的資訊,要做下面的事情:
4.1 用私鑰解析出密碼,用密碼解析握手訊息,驗證 hash 值是否和瀏覽器發來的一致;
4.2 使用金鑰加密訊息;
如果計算法 hash 值一致,握手成功。
http 和 https 的區別?
開銷:https 協議需要到 ca 申請證書,一般免費證書很少,需要交費;
埠不同:http 和 https 使用的是完全不同的連線方式,用的埠也不一樣,前者是 80,後者是 443;
安全性:http 的連線很簡單,是無狀態的;https 協議是由 tsl+http 協議構建的可進行加密傳輸、身份認證的網路協議,比 http 協議安全。
https 的優缺點?
優點:
使用 https 協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;
https 協議是由 ssl + http 協議構建的可進行加密傳輸、身份認證的網路協議,要比 http 協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性;
https 是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
缺點:https 協議握手階段比較費時,會使頁面的載入時間延長近 50%,增加 10% 到 20% 的耗電;
https 連線快取不如 http 高效,會增加資料開銷和功耗,甚至已有的安全措施也會因此而受到影響;
ssl 證書需要錢,功能越強大的證書費用越高,個人**、小**沒有必要一般不會用;
ssl 證書通常需要繫結 ip,不能在同一 ip 上繫結多個網域名稱,ipv4 資源不可能支撐這個消耗;
https 協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用。最關鍵的,ssl 證書的信用鏈體系並不安全,特別是在某些國家可以控制 ca 根證書的情況下,中間人攻擊一樣可行。
http 與 https 的區別
https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...
HTTPS與HTTP的區別
最近學習網路相關的知識,看到https和http,兩個有區別,於是在網上找了相關的資料,放在自己的部落格,作為學習筆記吧。ssl介紹 ssl secure socket layer 為netscape所研發,用以保障在internet上資料傳輸之安全,利用 資料加密 encryption 技術,可確...
http與https的區別
在url前加https 字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443 https協議是由ssl htt...