Stories

Detail Return Return

如何理解http與https協議,他們有什麼區別? - Stories Detail

寫在前面的話,關於 HTTP 和 HTTPS 的問題,常常會被很多學習者忽略,HTTP、HTTPS 不就是網址的開頭嗎,有啥好了解的,瀏覽器的引擎實現了這個協議,在開發關係不大,但想要深入一些理解數據傳輸原理,瞭解這兩個概念是必須的,以下的內容為概念性,幫助小夥伴們瞭解 HTTP 和 HTTPS 的關鍵點。

HTTP(HyperText Transfer Protocol,超文本傳輸協議)和HTTPS(HTTP Secure,安全超文本傳輸協議)都是用於從網絡傳輸超文本到本地瀏覽器的傳輸協議,它們是互聯網上應用最為廣泛的協議之一。以下是它們的主要區別和各自解決的問題:

HTTP(超文本傳輸協議)

  1. 定義:HTTP是一種用於分佈式、協作式、超媒體信息系統的應用層協議,它是萬維網數據通信的基礎。
  2. 特點:
  3. 明文傳輸:數據在傳輸過程中以明文形式存在,容易被截獲和篡改。
  4. 無狀態:HTTP協議本身不保留之前客户端和服務器的通信狀態。
  5. 連接無限制:HTTP協議沒有對連接的數量和頻率進行限制。
  6. 使用場景:適用於不需要安全加密的普通網頁數據傳輸,如新聞、博客等。

HTTPS(安全超文本傳輸協議)

  1. 定義:HTTPS是在HTTP的基礎上通過SSL/TLS協議進行加密的數據傳輸方式。
  2. 特點:
  3. 安全加密:通過SSL/TLS協議對數據進行加密,保護數據傳輸過程中的安全性,防止數據在傳輸過程中被竊取或篡改。
  4. 身份驗證:通過證書對服務器進行身份驗證,確保數據發送到正確的服務器。
  5. 完整性校驗:確保數據在傳輸過程中未被篡改。
  6. 使用場景:適用於需要高安全性的場合,如網上銀行、在線支付、登錄認證、敏感數據傳輸等。

區別

  • 安全性:HTTPS比HTTP更安全,因為數據在傳輸過程中被加密。
  • 加密方式:HTTP不加密,而HTTPS使用SSL/TLS進行加密。
  • 端口:HTTP默認端口是80,HTTPS默認端口是443。
  • 性能:由於加密和解密的開銷,HTTPS通常比HTTP慢一些,但這種差異隨着技術的發展越來越小。
  • SEO影響:搜索引擎如Google傾向於優先索引HTTPS網站,因為它們提供了更安全的數據傳輸。

解決的問題

  • HTTP:解決了如何在互聯網上傳輸超文本數據的問題,但因為其明文傳輸的特性,無法保證數據的安全性和完整性。
  • HTTPS:解決了數據傳輸過程中的安全性問題,通過加密確保數據的機密性、完整性和身份驗證,從而保護用户的隱私和數據安全。

隨着網絡安全意識的提高,越來越多的網站選擇使用HTTPS來保護用户數據和提高網站的可信度。

HTTP協議是如何工作的

HTTP(HyperText Transfer Protocol,超文本傳輸協議)是互聯網上應用最廣泛的協議之一,用於客户端(如瀏覽器)和服務器之間的通信。以下是HTTP協議的基本工作原理:

  1. 建立連接:
  2. 客户端通過TCP協議與服務器建立一個連接。HTTP/1.1默認使用持久連接,即TCP連接在傳輸完一個對象後不會關閉,可以被用來傳輸下一個對象。
  3. 發送請求:
  4. 客户端發送一個HTTP請求到服務器。請求通常包含請求行(如GET /index.html HTTP/1.1),請求頭(包含請求的附加信息,如User-Agent、Accept等),以及可選的請求體(如POST請求中的數據)。
  5. 服務器處理請求:
  6. 服務器接收到請求後,根據請求行中的HTTP方法(如GET、POST、PUT等)、資源路徑(如/index.html)和HTTP版本等信息,確定如何處理請求。
  7. 生成響應:
  8. 服務器處理請求後,生成一個HTTP響應。響應包括狀態行(如HTTP/1.1 200 OK),響應頭(包含響應的附加信息,如Content-Type、Content-Length等),以及響應體(即請求的資源內容,如HTML頁面)。
  9. 客户端接收響應:
  10. 客户端接收到服務器的響應後,根據響應的狀態碼(如200 OK、404 Not Found等)和響應頭中的信息,處理響應體中的數據。
  11. 關閉連接:
  12. 在HTTP/1.0中,每個請求/響應對完成後,連接就會關閉。而在HTTP/1.1中,默認使用持久連接,可以在同一個連接上發送多個請求/響應對,直到客户端或服務器端明確關閉連接。
  13. 內容展示:
  14. 客户端(通常是瀏覽器)將接收到的內容展示給用户。如果是HTML頁面,瀏覽器會解析HTML並渲染頁面。
  15. 資源加載:
  16. 對於HTML頁面中的其他資源(如圖片、CSS、JavaScript等),瀏覽器會再次通過HTTP協議發起請求,重複上述過程,直到頁面完全加載。

HTTP協議是無狀態的,即服務器不會在請求之間保存任何會話信息。為了解決這個問題,引入了Cookie和Session機制來保持狀態。

此外,HTTP協議還有一些擴展,如HTTP/2,它引入了頭部壓縮、多路複用等特性,以提高傳輸效率和性能。

HTTPS協議是如何工作的

HTTPS(HTTP Secure)協議是在HTTP協議的基礎上,通過SSL/TLS(Secure Socket Layer/Transport Layer Security)協議進行數據加密和安全認證的網絡協議。以下是HTTPS的工作原理:

  1. 建立TCP連接:
  2. 客户端(通常是瀏覽器)首先通過TCP協議與服務器建立一個安全的連接。
  3. 客户端發起HTTPS請求:
  4. 客户端通過HTTPS URL(以https://開頭)發起請求,這個請求會被髮送到服務器的443端口(或其他配置的端口)。
  5. 服務器響應證書:
  6. 服務器接收到客户端的HTTPS請求後,會向客户端發送其SSL證書。這個證書通常由受信任的證書頒發機構(CA)簽發,包含了服務器的公鑰和其它身份信息。
  7. 證書驗證:
  8. 客户端接收到證書後,會檢查證書的有效性,包括證書是否過期、證書頒發機構是否受信任等。如果證書驗證失敗,客户端會警告用户連接可能不安全。
  9. 密鑰交換:
  10. 如果證書驗證通過,客户端會生成一個隨機的對稱加密密鑰,用於本次會話的加密通信。然後,客户端使用服務器證書中的公鑰對這個對稱密鑰進行加密,並將加密後的密鑰發送給服務器。
  11. 服務器解密密鑰:
  12. 服務器使用自己的私鑰解密客户端發送的加密信息,得到對稱加密密鑰。
  13. 加密通信:
  14. 從此時開始,客户端和服務器都會使用這個對稱密鑰對所有傳輸的數據進行加密和解密,確保數據的機密性和完整性。
  15. 發送和接收數據:
  16. 客户端和服務器現在可以安全地交換數據。所有通過HTTPS傳輸的數據都會被加密,只有通信雙方才能解密和理解數據內容。
  17. 會話結束:
  18. 當通信結束時,客户端和服務器可以安全地關閉連接,或者保持連接以供後續通信使用(HTTP持久連接)。
  19. 安全性特性:
  20. HTTPS提供了數據完整性校驗和身份驗證,確保數據在傳輸過程中沒有被篡改,並且確認了通信雙方的身份。

HTTPS協議通過在HTTP協議之上增加SSL/TLS層,提供了數據加密、身份驗證和數據完整性校驗等安全特性,從而保護了用户數據和隱私安全,尤其適用於需要高安全性的場合,如網上銀行、在線支付、電子郵件等。

最後

瞭解 HTTP 和 HTTPS 的概念,連接客户端與服務端請求響應的知識空白,不用太多,V 哥覺得以上的內容夠了,如果還需要更深入瞭解,需要從網絡七層協議,瀏覽器的TCP實現細節入手。求個關注,威哥愛編程,一起熱愛技術。

user avatar souyunku Avatar huaming Avatar bygpt Avatar bill_5bac65cc7963b Avatar java_3y Avatar
Favorites 5 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.