久久国产精品一区二区三区四区,久色婷婷小香蕉久久,国产日韩欧美在线播放不卡,另类av一区二区

全球資訊:HTTP 新增的 103 狀態碼,這次終于派上用場了!
來源:code秘密花園    時間:2022-06-27 10:06:52

大家好,我是ConardLi。

說到HTTP?的103狀態碼,你可能很早就聽說過了,但是你不一定真的理解了它。


【資料圖】

這很正常,這個狀態碼早在2017年就被提出來了,但是支持它的服務器和瀏覽器真的很少。

直到前幾天,Chrome?宣布在Chrome 103?版本對HTTP 103狀態碼提供了支持,不得不說老外還挺皮啊...

今天我們就來看一下,HTTP 103狀態碼究竟有什么用途。

資源加載的性能問題

隨著時間的推移,網站變得越來越復雜。一些大型網站的服務器可能需要執行很多重要的工作(例如,訪問數據庫或訪問源服務器的CDN?)來為請求的頁面生成HTML。

但是,這種服務器的思考時間?會在瀏覽器開始渲染頁面之前帶來額外的延遲。因為瀏覽器需要先把HTML?頁面加載回來,才能知道下一步去加載哪些JavaScript、CSS或字體文件等。中間這段時間實際上就浪費掉了,對用戶訪問我們的頁面來講,這段等待時間就是白屏或是不可用的狀態。

我們來看看抖音Web?站的資源加載:瀏覽器先要等待前面兩個HTML?的大約800 ms?的時間才能去加載后面的JS 、CSS等資源文件。

有沒有辦法在等待HTML響應的同時就去提前把重要的靜態資源文件也加載回來呢?

HTTP 103 狀態碼

HTTP 103?狀態碼 (Early Hints?) 是一個信息性HTTP?狀態代碼,可以用于在最終響應之前發送一個初步的HTTP響應。

利用HTTP 103?狀態碼,就可以讓服務器在服務器處理主資源的同時向瀏覽器發送一些關鍵子資源(JavaScript、CSS或字體文件)或頁面可能使用的其他來源的提示。

瀏覽器可以使用這些提示來預熱連接,并在等待主資源響應的同時請求子資源。換句話說,Early Hints?可以通過提前做一些工作來幫助瀏覽器利用這種服務器思考時間,從而提升頁面的渲染性能。

在某些情況下,這可以幫助LCP?(最大內容繪制)至少提升幾百毫秒。例如在Shopify?和Cloudflare?所觀察到的來看,LCP大概提升了 1 秒。

啟用 Early Hints 前后對比

什么樣的網站適合 Early Hints

在開始使用之前,可能要先思考下,什么樣的網站比較適合這個優化。

如果你的網站的主頁面響應非???,可能沒什么必要。比如對于大部分SPA(單頁應用),可能用處不是那么大。

在SPA?中,大部分的邏輯都在客戶端,HTML?很小,下發HTML?的服務器也基本就是沒有什么邏輯的靜態服務器。大部分情況下只會包括一個Root?節點,以及一些資源的Link?,大部分邏輯和加載時間其實都在打包后的JavaScript?中。這種情況我們只需要使用常規的rel=preload、rel=preconnect等手段就可以了。

但是在SSR?項目中,加載HTML?往往需要在服務端花費更多的時間,因為服務端可能和數據庫交互以及將數據拼接成HTML?元素。相比之下,加載其他的腳本和樣式資源可能花費的時間要更短一點,這種站點啟用Early Hints是比較合適的。

啟用 Early Hints

在Chrome 103?版本,對HTTP 103?狀態碼 (Early Hints) 提供了支持。

啟用Early Hints?的第一步就是要確認我們站點的主頁面?,也就是用戶通常在訪問我們的網站時開始的頁面。如果我們有很多來自其他網站的用戶,主頁面可能就是主頁或熱門的產品列表頁面。

Early Hints的用途會隨著用戶在我們的站內導航的次數而降低,因為瀏覽器可能已經在前幾次導航中把所有需要的子資源請求回來了,給用戶良好的第一印象是最重要的!

確認了站點的主頁面?,下一步就是確定哪些來源或子資源將是最佳預連接或預加載的候選者。通常情況家,我們要找的就是對關鍵用戶指標(LCP?或FP?)貢獻最大的源和子資源。具體一點,就是找到阻塞渲染的子資源,例如同步JavaScript、樣式表,甚至網絡字體等。

然后就是盡量避免選擇已經過時或者不再被主頁面使用的資源。

比如一些經常更新或者帶有hash?的資源(conardli.top/static/home.aaaa1.js),盡量不要選擇,這可能會導致頁面需要加載的資源和實際預加載的資源不匹配。

比如我們舉個例子:

首先我們去服務器請求主頁面:

GET /home.htmlHost: conardli.topUser-Agent: [....] Chrome/103.0.0.0 [...]

服務器預測站點將需要home.aaaa1.js?,并建議通過Early Hints預加載它:

103 Early HintsLink: ; rel=preload; as=script[...]

隨后,客戶端馬上向服務端請求了home.aaaa1.js?。然而,這時JS?資源更新了,主頁面已經需要另外一個版本的JS了。

200 OK[...] Conardli"s Blog

所以,我們最好選擇一些比較穩定的資源進行預加載,我們可以對 JS 進行拆包,將不經常發生變化的穩定部分和經常發生更新的動態腳本部分拆成多個資源。我們只對穩定部分實施預加載,在瀏覽器獲取到主頁面后再去加載動態部分。

code秘密花園

最后,在服務器端,查找已知支持Early Hints?的瀏覽器發送的主頁面請求,并響應103 Early Hints?。在103?響應中,會包括相關的預連接和預加載提示。主頁面準備好后,再按照正常的響應進行響應。為了向后兼容,最好在最終響應中包含LINK HTTP標頭,甚至也可以增加在生成主頁面時需要的一些明顯的關鍵資源。

Early Hints響應:

GET /main.htmlHost: conardli.topUser-Agent: [....] Chrome/103.0.0.0 [...]103 Early HintsLink: ; rel=preconnectLink: ; rel=preload; as=styleLink: ; rel=preload; as=script

成功響應:

200 OKContent-Length: 7531Content-Type: text/html; charset=UTF-8Content-encoding: brLink: ; rel=preconnectLink: ; rel=preload; as=styleLink: ; rel=preload; as=scriptLink: ; rel=preload; as=style code秘密花園 <script src="/common.js"></script> 和 HTTP2/Push 有什么關系?

看到這里你可能發現了,這玩意和HTTP2?的服務器推送 (Server Push) 很像啊。

Server Push?即在瀏覽響應HTML文件的時候,服務器會同時將所需的資源文件主動推送給瀏覽器。

瀏覽器在收到推送的資源之后會緩存到本地。等解析HTML發現需要加載對應資源的時候會直接從本地讀取,不必再等待網絡傳輸了。

雖然這聽起來很神奇,但這個方案有非常大的缺陷:Server Push?很難避免推送瀏覽器已經擁有的子資源,其實很多資源在瀏覽器第一次請求到就已經緩存下來了。這種 “過度推動” 會導致網絡帶寬的使用效率降低,從而顯著阻礙性能優勢。總體而言,Chrome?數據顯示HTTP2/Push實際上對整個網絡的性能產生了負面影響。

所以,Chrome?宣布移除了對HTTP/2 Server Push特性的支持:

相比之下,Early Hints?在實踐中表現更好,因為它結合了發送初步響應的能力和提示,瀏覽器實際上只負責獲取它實際需要的資源。雖然Early Hints?還沒有涵蓋HTTP/2 Server Push?理論上可以解決的所有用例,但是它解決了網絡帶寬浪費的問題,可以說是HTTP/2 Server Push的升級版。

支持情況

瀏覽器支持情況:

服務器支持情況:

Node.js?:通過Fastify插件提供支持;Apache?:通過mod_http2支持;H2O:支持;Nginx:實驗模塊。

關鍵詞: 網絡帶寬 秘密花園 就可以了 這種情況

上一篇:

下一篇:

X 關閉

X 關閉

久久国产精品一区二区三区四区,久色婷婷小香蕉久久,国产日韩欧美在线播放不卡,另类av一区二区
欧美日韩精品免费观看视频| 亚洲美女av网站| 欧美成人小视频| 国产欧美不卡| 午夜在线电影亚洲一区| 欧美国产精品v| 久久免费精品视频| 欧美成人福利视频| 亚洲欧洲一区二区天堂久久| 欧美网站大全在线观看| 亚洲日本中文字幕| 久久久av毛片精品| 国产亚洲激情视频在线| 欧美电影免费网站| 性欧美暴力猛交另类hd| 久久狠狠亚洲综合| 韩国亚洲精品| 欧美性色aⅴ视频一区日韩精品| 欧美国产日韩在线观看| 亚洲一区二区三区中文字幕在线| 国内精品美女av在线播放| 1000精品久久久久久久久| 亚洲美女视频在线免费观看| 国产精品久久久久久久久久免费看| 日韩一级视频免费观看在线| 亚洲一区二区三区视频| 麻豆乱码国产一区二区三区| 欧美高清视频在线播放| 日韩写真视频在线观看| 在线视频国内自拍亚洲视频| 国产精品呻吟| 欧美日韩理论| 一区二区三区久久精品| 精品电影一区| 久久精品国产99精品国产亚洲性色| 亚洲高清在线播放| 亚洲已满18点击进入久久| 欧美一区二区三区在线| 亚洲激情女人| 欧美大片专区| 欧美国产激情二区三区| 欧美一区二区啪啪| 国产日韩一区欧美| 91久久精品国产| 99re6这里只有精品视频在线观看| 91久久午夜| 国产一区久久| 欧美日韩一区二| 欧美日本一区二区三区| 欧美大片在线看免费观看| 欧美激情综合五月色丁香| 国产亚洲欧美另类一区二区三区| 在线看成人片| 亚洲国产精品尤物yw在线观看| 久久久蜜桃精品| 国产精品久久国产三级国电话系列| 欧美激情1区2区3区| 欧美日本在线播放| 一区二区三区在线看| 欧美日韩亚洲高清一区二区| 99精品国产在热久久| 伊人久久噜噜噜躁狠狠躁| 欧美视频导航| 国产精品国码视频| 性欧美暴力猛交69hd| 亚洲欧美视频| 日韩视频一区| 欧美视频1区| 国产精品二区三区四区| 欧美高清在线一区二区| 亚洲大胆女人| 久久久久99精品国产片| 亚洲国产日韩一区| 亚洲一区国产精品| 国内免费精品永久在线视频| 伊人久久婷婷色综合98网| 欧美国产日产韩国视频| 久久久久久久久久久久久9999| 国产精品国产三级国产普通话99| 国产一区三区三区| 亚洲高清视频在线| 欧美大片在线影院| 国产女优一区| 午夜精品福利一区二区三区av| 亚洲欧美日韩成人高清在线一区| 久久一区二区三区国产精品| 久久免费视频这里只有精品| 久久黄色级2电影| 国内精品伊人久久久久av一坑| 正在播放欧美视频| av不卡在线| 狠狠干成人综合网| 黄色精品一二区| 欧美人与禽性xxxxx杂性| 国产精品豆花视频| 狠狠入ady亚洲精品经典电影| 在线日韩欧美视频| 亚洲欧洲精品一区二区三区| 欧美 日韩 国产在线| 亚洲人线精品午夜| 国产美女精品免费电影| 麻豆免费精品视频| 狠狠干狠狠久久| 久久久精品国产免费观看同学| 日韩亚洲欧美精品| 欧美一区二区三区精品电影| 免费高清在线一区| 亚洲精品一区在线观看香蕉| 免费欧美网站| 国产一区二区久久| 日韩一区二区高清| 国产日韩欧美二区| 国语精品一区| 欧美午夜视频在线观看| 久久久999成人| 亚洲精品国产精品国自产观看浪潮| 欧美日韩一区视频| 亚洲国产一区二区视频| 国产午夜精品久久久久久久| 在线观看日韩国产| 欧美日韩一区二区精品| 久久高清福利视频| 夜夜精品视频一区二区| 国产有码一区二区| 欧美在线一二三四区| 亚洲午夜精品一区二区三区他趣| 欧美精品在欧美一区二区少妇| 一区二区自拍| 亚洲专区在线视频| 亚洲丝袜av一区| 小黄鸭视频精品导航| 午夜亚洲性色福利视频| 一本色道88久久加勒比精品| 亚洲欧美激情视频在线观看一区二区三区| 免费成人在线观看视频| 国内成人精品2018免费看| 亚洲精品一二| 国产精品v欧美精品∨日韩| 国产精品一区在线观看你懂的| 国产亚洲午夜| 亚洲日韩成人| 国产精品香蕉在线观看| 欧美一区永久视频免费观看| 一区在线视频| 亚洲国产小视频| 久久精品视频免费观看| 国产午夜精品美女视频明星a级| 亚洲卡通欧美制服中文| 欧美亚洲在线| 久久久五月天| 亚洲美女福利视频网站| 亚洲国产一区在线| 亚洲精品免费在线| 在线观看日韩av先锋影音电影院| 欧美日韩在线一区二区| 欧美高清在线精品一区| 麻豆成人精品| 欧美在线视频一区二区三区| 亚洲第一在线综合在线| 99av国产精品欲麻豆| 国产亚洲欧美一区在线观看| 欧美三级免费| 亚洲国产精品尤物yw在线观看| 久久激情中文| 亚洲图片在线观看| 久热精品视频| 国产久一道中文一区| 久久国产精品99精品国产| 久久综合一区二区三区| 亚洲国产日韩在线| 欧美日韩一级视频| 国产视频自拍一区| 国产视频久久久久久久| 国产欧美日韩一区| 国产综合色产| 国产精品一区免费在线观看| 欧美大片在线看免费观看| 亚洲第一综合天堂另类专| 亚洲精品久久久蜜桃| 亚洲麻豆视频| 亚洲精品国久久99热| 国产精品久久久久免费a∨大胸| 久久成人18免费观看| 欧美精品高清视频| 久久国产精品一区二区三区| 国产九九视频一区二区三区| 欧美在线综合| 国产精品www994| 亚洲人被黑人高潮完整版| 亚洲欧美日韩在线高清直播| 欧美在线看片a免费观看| 欧美亚韩一区| 久久精品99国产精品酒店日本| 亚洲欧美三级伦理| 欧美一区二区三区免费看| 欧美精品一区二区三区蜜桃| 伊人久久亚洲热| 国产精品每日更新在线播放网址| 国产亚洲欧美日韩美女| 91久久国产精品91久久性色|