六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

一次性搞懂 HTTP、HTTPS、SPDY、HTTP2

[摘要]本篇文章給大家帶來的內容是關于一次性搞懂 HTTP、HTTPS、SPDY、HTTP2,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。作為互聯網通信協議的一員老將,HTTP 協議走到今天已經經歷了三次版本的變動,現在最新的版本是 HTTP2.0,相信大家早已耳熟能詳。今天就給大家好好...
本篇文章給大家帶來的內容是關于一次性搞懂 HTTP、HTTPS、SPDY、HTTP2,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

微信截圖_20181113161157.png

作為互聯網通信協議的一員老將,HTTP 協議走到今天已經經歷了三次版本的變動,現在最新的版本是 HTTP2.0,相信大家早已耳熟能詳。今天就給大家好好介紹一下 HTTP 的前世今生。

HTTP/0.9

HTTP 的最早版本誕生在 1991 年,這個最早版本和現在比起來極其簡單,沒有 HTTP 頭,沒有狀態碼,甚至版本號也沒有,后來它的版本號才被定為 0.9 來和其他版本的 HTTP 區分。HTTP/0.9 只支持一種方法—— Get,請求只有一行。

GET /hello.html
響應也是非常簡單的,只包含 html 文檔本身。

<HTML>
Hello world
</HTML>

當 TCP 建立連接之后,服務器向客戶端返回 HTML 格式的字符串。發送完畢后,就關閉 TCP 連接。由于沒有狀態碼和錯誤代碼,如果服務器處理的時候發生錯誤,只會傳回一個特殊的包含問題描述信息的 HTML 文件。這就是最早的 HTTP/0.9 版本。

HTTP/1.0

1996 年,HTTP/1.0 版本發布,大大豐富了 HTTP 的傳輸內容,除了文字,還可以發送圖片、視頻等,這為互聯網的發展奠定了基礎。相比 HTTP/0.9,HTTP/1.0 主要有如下特性:

請求與響應支持 HTTP 頭,增加了狀態碼,響應對象的一開始是一個響應狀態行

協議版本信息需要隨著請求一起發送,支持 HEAD,POST 方法

支持傳輸 HTML 文件以外其他類型的內容

一個典型的 HTTP/1.0 的請求像這樣:

GET /hello.html HTTP/1.0
User-Agent:NCSA_Mosaic/2.0(Windows3.1)
200 OK
Date: Tue, 15 Nov 1996 08:12:31 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html
<HTML>
一個包含圖片的頁面
<IMGSRC="/smile.gif">
</HTML>

HTTP/1.1


在 HTTP/1.0 發布幾個月后,HTTP/1.1 就發布了。HTTP/1.1 更多的是作為對 HTTP/1.0 的完善,在 HTTP1.1 中,主要具有如下改進:

可以復用連接

增加 pipeline:HTTP 管線化是將多個 HTTP 請求整批提交的技術,而在傳送過程中不需先等待服務端的回應。管線化機制須通過永久連接(persistent connection)完成。瀏覽器將HTTP請求大批提交可大幅縮短頁面的加載時間,特別是在傳輸延遲(lag/latency)較高的情況下。有一點需要注意的是,只有冪等的請求可以使用 pipeline,如 GET,HEAD 方法。

chunked 編碼傳輸:該編碼將實體分塊傳送并逐塊標明長度,直到長度為 0 塊表示傳輸結束, 這在實體長度未知時特別有用(比如由數據庫動態產生的數據)

引入更多緩存控制機制:如 etag,cache-control

引入內容協商機制,包括語言,編碼,類型等,并允許客戶端和服務器之間約定以最合適的內容進行交換

請求消息和響應消息都支持 Host 頭域:在 HTTP1.0 中認為每臺服務器都綁定一個唯一的 IP 地址,因此,請求消息中的URL并沒有傳遞主機名(hostname)。但隨著虛擬主機技術的發展,在一臺物理服務器上可以存在多個虛擬主機(Multi-homed Web Servers),并且它們共享一個 IP 地址。因此,Host 頭的引入就很有必要了。

新增了 OPTIONS,PUT, DELETE, TRACE, CONNECT 方法

雖然 HTTP/1.1 已經優化了很多點,作為一個目前使用最廣泛的協議版本,已經能夠滿足很多網絡需求,但是隨著網頁變得越來越復雜,甚至演變成為獨立的應用,HTTP/1.1 逐漸暴露出了一些問題:

在傳輸數據時,每次都要重新建立連接,對移動端特別不友好

傳輸內容是明文,不夠安全

header 內容過大,每次請求 header 變化不大,造成浪費

keep-alive 給服務端帶來性能壓力

為了解決這些問題,HTTPS 和 SPDY 應運而生。

SPDY

其實 SPDY 并不是新的一種協議,而是在 HTTP 之前做了一層會話層。

在 2010 年到 2015 年,谷歌通過實踐一個實驗性的 SPDY 協議,證明了一個在客戶端和服務器端交換數據的另類方式。其收集了瀏覽器和服務器端的開發者的焦點問題,明確了響應數量的增加和解決復雜的數據傳輸。在啟動 SPDY 這個項目時預設的目標是:

頁面加載時間 (PLT) 減少 50%。

無需網站作者修改任何內容。

將部署復雜性降至最低,無需變更網絡基礎設施。

與開源社區合作開發這個新協議。

收集真實性能數據,驗證這個實驗性協議是否有效。

為了達到降低目標,減少頁面加載時間的目標,SPDY 引入了一個新的二進制分幀數據層,以實現多向請求和響應、優先次序、最小化及消除不必要的網絡延遲,目的是更有效地利用底層 TCP 連接。

HTTP/2.0

時間來到 2015 年,HTTP/2.0 問世。先來介紹一下 HTTP/2.0 的特點吧:

使用二進制分幀層:在應用層與傳輸層之間增加一個二進制分幀層,以此達到在不改動 HTTP 的語義,HTTP 方法、狀態碼、URI 及首部字段的情況下,突破HTTP1.1 的性能限制,改進傳輸性能,實現低延遲和高吞吐量。在二進制分幀層上,HTTP2.0 會將所有傳輸的信息分割為更小的消息和幀,并對它們采用二進制格式的編碼,其中 HTTP1.x 的首部信息會被封裝到 Headers 幀,而我們的 request body 則封裝到 Data 幀里面。

二進制分幀

多路復用:對于 HTTP/1.x,即使開啟了長連接,請求的發送也是串行發送的,在帶寬足夠的情況下,對帶寬的利用率不夠,HTTP/2.0 采用了多路復用的方式,可以并行發送多個請求,提高對帶寬的利用率。

多路復用

數據流優先級:由于請求可以并發發送了,那么如果出現了瀏覽器在等待關鍵的 CSS 或者 JS 文件完成對頁面的渲染時,服務器卻在專注的發送圖片資源的情況怎么辦呢?HTTP/2.0 對數據流可以設置優先值,這個優先值決定了客戶端和服務端處理不同的流采用不同的優先級策略。

服務端推送:在 HTTP/2.0 中,服務器可以向客戶發送請求之外的內容,比如正在請求一個頁面時,服務器會把頁面相關的 logo,CSS 等文件直接推送到客戶端,而不會等到請求來的時候再發送,因為服務器認為客戶端會用到這些東西。這相當于在一個 HTML 文檔內集合了所有的資源。

頭部壓縮:使用首部表來跟蹤和存儲之前發送的鍵值對,對于相同的內容,不會再每次請求和響應時發送。

以上就是對一次性搞懂 HTTP、HTTPS、SPDY、HTTP2的全部介紹,如果您想了解更多有關Html5教程,請關注PHP中文網。

以上就是一次性搞懂 HTTP、HTTPS、SPDY、HTTP2的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




主站蜘蛛池模板: 一级做a爰在线就看 | 中文日产国产精品久久 | 五月婷婷影院 | 五月婷婷精品 | 天天狠狠干 | 亚洲综合丁香婷婷六月香 | 伊人色在线观看 | 无间电视剧在线 | 青青草免费观看视频 | 日韩免费一级毛片 | 日日夜夜网站 | 亚洲aⅴ在线 | 无码免费一区二区三区免费播放 | 欧美视频一级 | 一二三四免费观看在线8 | 日韩中文字幕久久精品 | 日韩免费视频观看 | 三级特黄高清完整视频 | 日本gogo亚洲高清大胆 | 亚洲精品乱码久久久久久 | 日本人的一区二区三区四区 | 性做久久久久久 | 一本久久道aa兔费看 | 青青草自拍 | 亚洲一区在线视频 | 天堂网2021天堂手机版丶 | 素人啪啪 | 一级黄色大片视频 | 午夜激情福利视频 | 先锋资源久久 | 亚州1区2区3区4区产品乱码2021 | 欧美一级黄色片视频 | 我要看一级黄色毛片 | 四虎影院在线免费观看 | 亚洲欧洲免费 | 色婷婷影院 | 亚洲成a人片在线观看 欧美 | 日本丝袜护士 | 亚洲第一中文字幕 | 图片亚洲va欧美va国产综合 | 亚洲 日本 欧美 日韩精品 |