HTTP/2協議

詳細描述了HTTP/2協議的工作原理。 我建議先閱讀HTTP教程 HTTP/2是當前版本的HTTP協議。它由IETF(互聯網工程任務組)委員會於2015年發布,由於其獨特的功能,目前被廣泛采用。 HTTP/2比上一個版本的HTTP 1.1要更高效。在當時,HTTP/2的速度提升如此引人注目,以至於它很快就被廣泛采用。通過對Web服務器進行簡單的更改(因為HTTP/2與HTTP 1.1完全向下兼容),您的網站和Web應用程序現在自動運行得更快,這對用戶和SEO都有益處(因為速度是排名的關鍵因素)。 HTTP/2如何比HTTP/1.1更快?原因有很多,都是為了減少上一個版本的低效性,並引入能夠使瀏覽器更能快速提供資源的功能。 新版本協議的主要功能有: 請求和響應多路徑 HTTP標頭的高效壓縮 服務器推送 二進制通信 多路徑 在HTTP/2之前,每個TCP連接一次只能提供一個響應。 TCP是HTTP的底層協議。TCP位於傳輸層,而HTTP位於應用層。 HTTP/2在單個TCP連接上實現了請求/響應多路徑,允許服務器使用同一個連接提供多個請求,從而實現更快的通信。 這是一個對您的應用程序很有益的單一變化,使得一些優化技術變得過時,包括圖像合併(將多個圖像合併為一個,然後使用特殊的CSS技術進行“解多路”)和域名分片,另一種防止瀏覽器對同一域名的同時連接數量限制的技巧。 標頭壓縮 頁面和資源上的HTTP標頭可能會變得很大,考慮到正常使用Cookie和其他標頭值。壓縮使得HTTP的佔用空間更輕,減少了客戶端和服務器之間交換的數據量。 服務器推送 服務器推送是一種功能,允許將多個響應發送到單個請求。由於服務器知道在請求資源時,客戶端將要求其他補充資源(如CSS、JS、頁面上的圖像),因此服務器可以決定立即發送這些資源。 服務器可以還可以決定發送可能在未來請求中需要的資源,預先優化下一頁的加載並將其放在客戶端缓存中。 請注意,服務器推送也可能有一些缺點-例如,可能會向客戶端發送未必需要的過多數據(可能已在客戶端緩存中可用),因此需要謹慎使用。 二進制通信 HTTP/1.1使用基於文本的通信。HTTP/2使用二進制通信,這有一些優點,包括更容易解析、更少的錯誤以及更緊湊的格式。 未來的發展方向是什麼? HTTP/3正在開發中,將從實驗性項目HTTP-over-QUIC進行調整。 QUIC是一種基於UDP(而不是TCP)的傳輸層協議,這意味著HTTP/3將基於與HTTP/2和HTTP/1.x完全不同的技術堆棧進行。

HTTPS協議

HTTPS協議是HTTP(超文本傳輸協議)的一個擴展,提供了安全的通信。 HTTP本身設計上存在不安全性。 當你在瀏覽器中打開並請求網頁時,你的數據需要經歷2次傳輸:一次從瀏覽器到網頁服務器,一次從網頁服務器到瀏覽器。 此外,根據網頁內容的不同,可能需要更多的連接來獲取CSS文件、JavaScript文件、圖片等等。 在這些連接中,你的數據可能會被任何網絡節點進行檢視和操控。 這可能帶來嚴重的後果:你的所有網絡活動可能被一個你甚至不知道其存在的第三方監視和記錄,一些網絡可能會注入廣告,而且你可能會成為中間人攻擊的目標,這是一種安全威脅,攻擊者可以操縱你的數據,甚至冒充你的計算機進行網絡操作。對於某個人來說,只要在公共的未加密的Wi-Fi網絡上聽取HTTP數據包是非常容易的。 HTTPS旨在從根本上解決這個問題:你的瀏覽器和網頁服務器之間的整個通信過程都是加密的。 隱私和安全是當今互聯網的一個重大關注點。幾年前,你可能只需要在登錄保護的頁面或電子商務結帳時使用加密連接。由於SSL證書的價格和複雜性,大多數網站僅使用HTTP。 而今天,任何網站都需要使用HTTPS。整個Web中超過50%的網站正在使用HTTPS。Google Chrome最近開始將HTTP網站標記為不安全,只為了給你一個強制在所有網站上強制使用HTTPS的合理理由。 使用HTTP時,默認的服務器端口是80,使用HTTPS時是443。如果服務器使用默認端口,則無需額外添加。 HTTPS有時也被稱為HTTP over SSL或HTTP over TLS。 兩者之間的區別很簡單:TLS是SSL的後繼者。 使用HTTPS時,唯一不加密的是網頁服務器的域名和服務器端口。 其他所有信息,包括資源路徑、標頭、Cookie和查詢參數都是加密的。 我不會詳細分析TLS協議的工作原理,但你可能認為它會增加相當多的開銷,你是對的。 在處理網絡資源時增加的任何計算都會給客戶端、服務器端和傳輸的數據包大小帶來開銷。 然而,HTTPS使得使用最新的協議HTTP/2成為可能,這相對於HTTP/1.1具有巨大的優勢:速度更快。 原因有很多,其中之一是標頭壓縮,另一個是資源多路徑。還有服務器推送功能,當請求某個資源時,服務器可以同時推送所需的所有資源(圖片、CSS、JS)。 除此之外,HTTP/2相對於HTTP/1.1有著更多的優點,前提是使用現代的設置進行合理配置,這使得HTTPS相對於HTTP來說速度更快。