【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )
文章目錄
- 前言
- 一、HTTP 發(fā)展過程
- 二、HTTP/1.1 與 HTTP/2 對比
- 三、HTTP 報(bào)文格式
前言
目前如果在瀏覽器中訪問 http 網(wǎng)站 , 瀏覽器會(huì)提示不安全 , 如下圖 :
如果訪問 https 網(wǎng)站 , 瀏覽器顯示安全圖標(biāo) , 如下圖 :
當(dāng)前幾乎所有的網(wǎng)站 , 都使用 HTTPS 協(xié)議 ;
HTTPS 是在 HTTP 的基礎(chǔ)上進(jìn)行的強(qiáng)化 ;
HTTPS = HTTP + SSL ;
一、HTTP 發(fā)展過程
HTTP 協(xié)議是基于 TCP/IP 的超文本傳輸協(xié)議 , 發(fā)展歷史如下 :
- HTTP/0.9 : 199119911991 年 , 只能進(jìn)行 GET 請求 , 不能傳輸數(shù)據(jù)包 , 規(guī)定客戶端服務(wù)器通信格式 ; ( 不是正式標(biāo)準(zhǔn) )
- HTTP/1.0 : 199619961996 年 , 增加了 PUT , PATCH , HEAD , OPTIONS , DELETE 等命令 , 不再限制傳輸內(nèi)容的格式 ; ( 正式標(biāo)準(zhǔn) )
- HTTP/1.1 : 199719971997 年 , 支持 長連接 , 帶寬節(jié)約 , HOST 域 , 管道機(jī)制 , 分塊傳輸編碼 等機(jī)制 ; ( 目前使用最廣泛的版本 )
- HTTP/2 : 201520152015 年 , 支持 多路復(fù)用 , 服務(wù)器推送 , 頭信息壓縮 , 二進(jìn)制協(xié)議 等機(jī)制 ; ( 逐步推進(jìn)覆蓋市場 )
目前使用最廣泛的版本是 HHTP/1.1 , 但是 201520152015 年后 , HTTP/2 出現(xiàn) , 逐漸覆蓋市場 ;
二、HTTP/1.1 與 HTTP/2 對比
HTTP/1.1 請求網(wǎng)頁流程 :
- ① 建立 HTTP 連接 ;
- ② 客戶端發(fā)送 GET 請求 , 請求服務(wù)器端的 index.html 文件 ;
- ③ 服務(wù)器端響應(yīng) , 返回 html 文件信息 ;
- ④ 客戶端發(fā)送 GET 請求 , 請求 style.css 文件 ;
- ⑤ 服務(wù)器端響應(yīng) , 返回 style.css 文件
- ⑥ 客戶端發(fā)送 GET 請求 , 請求服務(wù)器端的 scripts.js 文件 ;
- ⑦ 服務(wù)器端響應(yīng) , 返回 scripts.js 文件 ;
- ⑧ 客戶端渲染界面
- ⑨ 關(guān)閉 HTTP 連接 ;
弊端 : 每次只能請求網(wǎng)頁的一個(gè)文件 , css 和 js 腳本需要分兩次請求 , 客戶端才能獲取到完整的文件 ;
HTTP/2 多路復(fù)用機(jī)制 : 通過 111 個(gè) HTTP/2 發(fā)起多重 請求/響應(yīng) 信息 , 多個(gè)請求共享同一個(gè) TCP 連接 ;
- ① 建立 HTTP 連接 ;
- ② 客戶端發(fā)送 GET 請求 , 請求服務(wù)器端的 index.html 文件 ;
- ③ 服務(wù)器端響應(yīng) , 返回 html 文件信息 ;
- ④ 客戶端發(fā)送 GET 請求 , 請求 style.css 和 scripts.js 文件 ;
- ⑤ 服務(wù)器端響應(yīng) , 返回 style.css 和 scripts.js 文件
- ⑥ 客戶端渲染界面
- ⑦ HTTP 連接繼續(xù)保持打開狀態(tài) ;
三、HTTP 報(bào)文格式
客戶端要訪問某網(wǎng)站 , 向服務(wù)器端發(fā)送的報(bào)文是 請求報(bào)文 ;
請求報(bào)文格式 : CRLF 是回車換行 ;
服務(wù)器端 接收 到客戶端的請求報(bào)文 , 響應(yīng)客戶端的請求 , 向客戶端發(fā)送的報(bào)文是 響應(yīng)報(bào)文 ;
響應(yīng)報(bào)文格式 : CRLF 是回車換行 ;
請求報(bào)文 與 響應(yīng)報(bào)文 真實(shí)案例分析 :
這里以訪問人大網(wǎng)站 ( http://rucfd.ruc.edu.cn/ ) 為例 ;
在瀏覽器輸入上述網(wǎng)址 , 按下 F12 鍵 , 進(jìn)入調(diào)試模式 , 刷新網(wǎng)頁 , 查看 HTTP 請求與響應(yīng)過程 ;
請求頭 :
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 ;
GET / HTTP/1.1首部行 : 請求行下面的都是首部行 , 每個(gè)鍵值對后面跟著一個(gè)回車換行 ;
響應(yīng)頭 :
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狀態(tài)行 : 版本號 HTTP/1.1 , 狀態(tài)碼 200 , 短語 OK ;
HTTP/1.1 200 OK首部行 : 剩余的都是首部行 , 每個(gè)鍵值對后面跟著一個(gè)回車換行 ;
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】Android Studio
- 下一篇: 【错误记录】TabLayout 升级支持