【计算机网络】HTTP 与 HTTPS ( HTTPS 简介 | HTTP 通信过程 )
文章目錄
- 一、HTTPS 簡介
- 二、HTTP 通信過程
一、HTTPS 簡介
HTTPS 協議就是在 HTTP 協議的基礎上 , 增加了一個 SSL 外殼 , 對 HTTP 協議進行加密 ;
HTTP 協議傳輸數據時 , 傳輸的就是 明文 , 如果抓包或者截獲后 , 可以直接看到傳輸的數據內容 ;
HTTPS 協議在網絡傳輸時 , 傳輸的內容是 加密后的內容 , 不是明文 , 更不容易被截獲 ;
HTTP 特點 :
① 無狀態 : 服務器 不存儲客戶端的狀態 , 客戶端每次請求服務器 , 都當做新的客戶端第一次請求 ; 爬蟲可以隨意無限次地抓取網站信息 ;
② 無連接 : 客戶端每次請求服務器端 , 數據傳授完畢后 , 連接斷開 ; HTTP 是基于 TCP 協議的 , 每次連接需要 333 次握手 , 每次斷開連接需要 444 次揮手 , 頻繁進行連接斷開操作 , 繁瑣 , 延遲高 , 空耗系統資源 ;
③ 安全性差 : 傳輸的數據是 明文 , 無法確保數據保密性 ; 客戶端和服務器端不驗證對方身份 , 無法確保數據完整性 ;
④ 快速 , 靈活 , 高效 ;
HTTPS 特點 :
① 安全性強 : 傳輸數據加密 , 中間截獲 , 無法進行解密 ;
② 身份驗證 : 通過 SSL 認證證書 , 確認通信的 客戶端 與 服務器 雙方的身份 ;
③ 數據完整性 : 加密后的數據能防止被截獲修改 ;
二、HTTP 通信過程
發送 HTTP 請求 , HTTP 基于 TCP , 因此需要先建立 TCP 連接 ;
① 建立 TCP 連接 : TCP 連接的建立需要 333 次握手機制 ;
- 客戶端 -> 服務器端 : 你能聽到我說話嗎 ?
- 服務器端 -> 客戶端 : 我能 , 你能聽到我說話嗎 ?
- 客戶端 -> 服務器端 : 我能 , 開始發送數據 ;
② 客戶端瀏覽器向 Web 服務器發送請求報文 : 請求頭命令就是下圖 " 請求行 " 信息 ; 如
GET / HTTP/1.1③ 客戶端瀏覽器發送請求頭信息 : 請求頭信息就是下圖中的 " 請求頭部 " 數據 , 由若干鍵值對組成 ; 如下示例
Host: rucfd.ruc.edu.cn Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 If-None-Match: "b7f-5b575595fe630-gzip" If-Modified-Since: Wed, 02 Dec 2020 06:28:18 GMT完整的請求報文信息 :
GET / HTTP/1.1 Host: rucfd.ruc.edu.cn Connection: keep-alive Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 If-None-Match: "b7f-5b575595fe630-gzip" If-Modified-Since: Wed, 02 Dec 2020 06:28:18 GMT④ Web 服務器向客戶端瀏覽器會送應答第一部分 : 只回送 " 響應行 " 數據 ; 如 :
HTTP/1.1 200 OK⑤ Web 服務器向客戶端瀏覽器回送應答第二部分 : 回送 " 響應頭部 " 信息 ; 如 :
Server: none Date: Mon, 21 Jun 2021 05:15:56 GMT Content-Type: text/html Content-Length: 1104 Connection: keep-alive Last-Modified: Wed, 02 Dec 2020 06:28:18 GMT ETag: "b7f-5b575595fe630-gzip" Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip響應報文完整示例 :
HTTP/1.1 200 OK Server: none Date: Mon, 21 Jun 2021 05:15:56 GMT Content-Type: text/html Content-Length: 1104 Connection: keep-alive Last-Modified: Wed, 02 Dec 2020 06:28:18 GMT ETag: "b7f-5b575595fe630-gzip" Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip⑥ Web 服務器向客戶端瀏覽器回送應答第三部分 : 回送用戶請求的實際數據 , 在之前 " 響應頭部 " 中的 Content-Type 中設置有用戶請求的類型 , 是 text/html 類型 , 這里會送的就是該 html 文本數據 ;
Content-Type: text/html⑦ Web 服務器關閉 TCP 連接 : 444 次揮手 ;
總結
以上是生活随笔為你收集整理的【计算机网络】HTTP 与 HTTPS ( HTTPS 简介 | HTTP 通信过程 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OkHttp】Android 项目导入
- 下一篇: 【计算机网络】HTTP 与 HTTPS