HTTP和HTTPS(筆記)

HTTP

  1. 支持客戶/服務器模式。
  2. 簡單快速,方法和路徑。
  3. 靈活,容許傳輸任意類型的數據對象。
  4. 無鏈接,每次鏈接只處理一個請求。
  5. 無狀態協議。

請求/響應的步驟

  1. 客戶端和Web服務器(默認80端口)創建TCP鏈接。
  2. 經過TCP鏈接,客戶端發送HTTP請求。
  3. 服務器接收請求並返回HTTP響應。
  4. 釋放TCP鏈接。若是connectionclose,則服務器主動關閉TCP鏈接,客戶端被動關閉。若是是keep-alive,表示持久鏈接,該鏈接還能夠被其餘HTTP請求複用,直到客戶端或服務器認爲鏈接已經結束,其中一方中斷鏈接。
  5. 客戶端瀏覽器解析HTML內容。

在瀏覽器地址欄鍵入URL,按下回車以後經歷的流程

  1. 瀏覽器根據URL中的域名進行DNS 解析,以獲取相關服務器的IP地址。DNS緩存依次查詢瀏覽器緩存、操做系統緩存、路由器緩存、ISP緩存、根域名服務器緩存、頂級域名服務器緩存。
  2. 客戶端根據查詢到的IP地址加端口,(HTTP默認80HTTPS默認443),和服務器創建TCP鏈接。三次握手詳細介紹。
  3. 瀏覽器發送HTTP請求。
  4. 服務器處理請求並返回HTTP響應報文。
  5. 瀏覽器解析渲染頁面。
  6. 釋放TCP鏈接。

HTTP狀態碼

1xx:表示請求已接受,繼續處理。瀏覽器

2xx:成功,表示請求已經被成功。緩存

3xx:重定向,要完成請求必須進行更進一步的操做。安全

4xx:客戶端錯誤。服務器

5xx:服務器錯誤。cookie

GET請求和POST請求的區別

是瀏覽器和服務器經過HTTP協議進行交互的兩種方法:網絡

  1. HTTP報文層面:GET將請求信息放在URL中,POST將請求信息放在請求體中。雖然HTTP協議沒有對URL長度進行限制,可是主流瀏覽器會限制URL的長度。
  2. REST規範中:GET請求進行查詢操做,符合冪等性和安全性,POST用來進行數據存儲,不符合。
  3. 由於冪等性,GET請求能夠被緩存,而POST不行。

Session

服務器端的機制,在服務器上保存的信息。session

解析客戶端請求並操做session id,按需保存狀態信息。加密

  1. 使用Cookie方式實現
  2. 使用URL回寫來實現

服務器響應返回JSESSIONID=XXXXX,不管哪一種,核心都是JSESSIONID,是Tomcat 爲咱們自動匹配的(根據JSESSIONID找服務器的SESSION)。spa

Cookie和Session的區別

  1. cookie數據存放在客戶的瀏覽器上,session數據存放在服務器上。
  2. 由於存儲位置的差別,因此在服務器端的session更加安全。
  3. 可是大量數據存在session裏會給服務器帶來負擔,因此應適當使用cookie

HTTPS

clipboard.png

SSL

爲網絡通訊提供安全及數據完整性的一種安全協議。操作系統

是操做系統對外的APISSL 3.0後改名爲TLS

採用身份驗證和數據加密保證網絡通訊的安全和數據的完整性。

HTTP和HTTPS的區別

  1. HTTPS須要申請CA證書,HTTP不須要。
  2. HTTPS是密文傳輸的,HTTP明文傳輸。
  3. HTTPS默認使用443端口,HTTP默認使用80端口。
  4. HTTPS = HTTP + SSL

流程

由於非對稱加密成本較高,因此將密鑰使用非對稱加密進行傳輸,而通訊過程當中使用傳輸的密鑰進行對稱加密。

clipboard.png

相關文章
相關標籤/搜索