總結:http效率更高,https安全性更高。
什么是http
超文本傳輸協議(HyperText Transfer Protocol -- HTTP)是一個設計來使客戶端和服務器順利進行通訊的協議。
HTTP在客戶端和服務器之間以request-response protocol(請求-回復協議)工作。
HTTP協議永遠都是客戶端發起請求,服務器回送響應。
HTTP協議是一個無狀態的協議,同一個客戶端的這次請求和上次請求是沒有對應關系。
什么是https
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議 它是一個安全通信通道,它基于HTTP開發,用于在客戶計算機和服務器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來說它是HTTP的安全版。 它是由Netscape開發并內置于其瀏覽器中,用于對數據進行壓縮和解壓操作,并返回網絡上傳送回的結果。
HTTPS協議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。
區別:
https協議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議
http和https使用的是完全不同的連接方式用的端口也不一樣:前者是80,后者是443。
http的連接很簡單,是無狀態的 HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全
HTTP 請求方式:get post
GET - 從指定的服務器中獲取數據
POST - 提交數據給指定的服務器處理
使用GET方法時,查詢字符串(鍵值對)被附加在URL地址后面一起發送到服務器:
特點:
GET請求能夠被緩存
GET請求會保存在瀏覽器的瀏覽記錄中
以GET請求的URL能夠保存為瀏覽器書簽
GET請求有長度限制
GET請求主要用以獲取數據
使用POST方法時,查詢字符串在POST信息中單獨存在,和HTTP請求一起發送到服務器:
特點:
POST請求不能被緩存下來
POST請求不會保存在瀏覽器瀏覽記錄中
以POST請求的URL無法保存為瀏覽器書簽
POST請求沒有長度限制
HTTP緩存的基本目的就是使應用執行的更快,更易擴展,但是HTTP緩存通常只適用于idempotent request(可以理解為查詢請求,也就是不更新服務端數據的請求),這也就導致了在HTTP的世界里,一般都是對Get請求做緩存,Post請求很少有緩存。
GET和POST的區別:
http 一次搜索的流程
(1)瀏覽器先搜索自身的DNS緩存
(2)操作系統搜索自身的DNS緩存(瀏覽器沒有找到緩存或者緩存已經失效)
(3)讀取本地的HOST文件
(4)瀏覽器發起一個DNS的一個系統調用
寬帶運營商服務器查看本身緩存
運營商服務器發起一個迭代DNS解析的請求
運營商服務器把結果返回操作系統內核同時緩存起來
操作系統內核把結果返回瀏覽器
瀏覽器就拿到了www.imooc.com的IP地址
(5)瀏覽器獲得域名對應的IP地址后,發起HTTP“三次握手”
(6)TCP/IP鏈接建立起來后,瀏覽器就可以向服務器發送HTTP請求了
(7)服務器端接受到了這個請求,根據路徑參數,經過后端的一些處理之后,把處理后的結果數據返回給瀏覽器,比如頁面完整的html代碼等返回給瀏覽器
(8)瀏覽器拿到了完整的html代碼后,在解析和渲染這個頁面的時候,里面的JS,CSS,圖片靜態資源,他們同樣也是一個個http請求,都要經過上面的主要七個步驟。
(9)瀏覽器根據拿到的資源對頁面進行渲染,最終把一個完整的頁面呈現給了用戶。
http協議學習系列
什么是HTTPS?聽大神說https和http有何區別?
HTTP與HTTPS的區別
HTTP 請求方式: GET和POST的比較
緩存 HTTP POST請求和響應
HTTP狀態碼詳解