日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

http协议下需要服务器推送吗,HTTP/2.0 服务器推送实现

發(fā)布時間:2023/12/2 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 http协议下需要服务器推送吗,HTTP/2.0 服务器推送实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言HTTP/2.0發(fā)布于2015年,作為新一代HTTP協(xié)議,其由于推進互聯(lián)網(wǎng)加密技術(shù)的使用,所以只能作用于https連接當(dāng)中。HTTP/2.0提供HTTP語義的有效序列化,是一個二進制協(xié)議,所有的框架開始一個8字節(jié)的頭,緊跟著的0和16.383個八位位組之間的有效載荷。當(dāng)然HTTP的復(fù)用性也是其一大特點,而新定義的HTTP請求與響應(yīng)映射到流的新互動模式,也就是我今天要說的服務(wù)器推送。

服務(wù)器推送

HTTP/2允許服務(wù)器在請求之前先推送響應(yīng)信息到客戶端(之前客戶端有過請求),如果實現(xiàn)了HTTP緩存,推送的響應(yīng)信息可以在客戶端被緩存(可通過no-cache進行配置)。

(注意:HTTP/2是持久連接,為了實現(xiàn)最佳性能,預(yù)計客戶端在確定不需要與服務(wù)器進一步通信時或者服務(wù)器關(guān)閉連接時才會關(guān)閉連接,所以客戶端不應(yīng)該打開多個同一IP與端口的連接。)

對于HTTP/2的推送詳細說明在官方文檔種過于繁雜,下面將以更為簡單的方式來進行說明。

普通請求

左圖表示一個正常情況下的一個簡單的頁面請求,一個HTML頁面我們要進行頁面請求與頁面包含的樣式文件請求,如果有頁面中有圖片等頁面文件時請求次數(shù)將會更多。

當(dāng)然,我們可以通過:

這種形式來進行資源預(yù)加載,但是不同類型的代碼整合已經(jīng)不符合代碼規(guī)則,雖然速度有所提升,但是HTTP請求次數(shù)并沒有減少。

服務(wù)器推送

右圖中表示通過只通過一次HTML請求,就同時把樣式、圖片等全部發(fā)送給瀏覽器,通過一次通信獲得所有資源。

實現(xiàn)方式

Nginx實現(xiàn)

在nginx的conf配置文件中,添加http2_push命令,表示請求根目錄"/"時,會推送這兩個文件。(如果有多個文目錄時需要寫多個,方法繁瑣,每次修改都要重啟,不推薦)server?{

listen?443?ssl?http2;

···//省略

location?/?{

···//省略

http2_push?/style.css;

http2_push?/example.png;

}

}

Apache 實現(xiàn)

在httpd.conf文件中加入(不推薦,理由同上)

Header?add?Link?";?rel=preload;?as=style"

Header?add?Link?";?rel=preload;?as=image"

后端實現(xiàn)

通過在應(yīng)用生成HTTP 回應(yīng)的頭信息中設(shè)置Link命令(推薦),服務(wù)器在收到包含Link的頭信息時,就會進行推送,例如:Link:?;?rel=preload;?as=style,?;?rel=preload;?as=image

服務(wù)器推送方式據(jù)說可以提高8%左右的打開速度,有興趣的朋友可以測試一下,有結(jié)果記得給我反饋一下哦。

總結(jié)

以上是生活随笔為你收集整理的http协议下需要服务器推送吗,HTTP/2.0 服务器推送实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。