?
This document uses PHP Chinese website manual Release
X-DNS-Prefetch-Control
HTTP 響應(yīng)頭控制 DNS 預(yù)取功能通過對(duì)用戶可以選擇跟隨,以及通過在文檔,包括圖片,CSS,JavaScript 和等參考項(xiàng)的 URL 都鏈接瀏覽器主動(dòng)進(jìn)行域名解析。
該預(yù)取在后臺(tái)執(zhí)行,以便在需要引用項(xiàng)目時(shí) DNS 可能已經(jīng)解決。這可以減少用戶點(diǎn)擊鏈接時(shí)的等待時(shí)間。
Header type | Response header |
---|---|
Forbidden header name | no |
X-DNS-Prefetch-Control: on X-DNS-Prefetch-Control: off
onEnables DNS 預(yù)取。這是瀏覽器所做的,如果它們支持該功能的話,那么這個(gè)標(biāo)題不是 presentoffDisables 的 DNS 預(yù)取。如果您不控制頁面上的鏈接,或者不知道您不希望將信息泄漏到這些域,這很有用。
DNS 請(qǐng)求在帶寬方面非常小,但延遲非常高,特別是在移動(dòng)網(wǎng)絡(luò)上。通過推測性地預(yù)取 DNS 結(jié)果,可以在某些時(shí)候顯著降低延遲,例如當(dāng)用戶點(diǎn)擊鏈接時(shí)。在某些情況下,延遲可能會(huì)縮短一秒。
在一些瀏覽器中實(shí)現(xiàn)這種預(yù)取允許域名解析與實(shí)際頁面內(nèi)容的獲取并行(而不是與其串行)發(fā)生。通過這樣做,高延遲域名解析過程在獲取內(nèi)容時(shí)不會(huì)造成任何延遲。
頁面加載時(shí)間 - 尤其是在移動(dòng)網(wǎng)絡(luò)上 - 可以通過這種方式進(jìn)行可測量的改進(jìn)。如果可以在請(qǐng)求的圖像之前解析圖像的域名,那么載入很多圖像的頁面在加載圖像時(shí)可以看到 5% 或更多的改進(jìn)。
一般來說,您不需要執(zhí)行任何操作來管理預(yù)取。但是,用戶可能希望禁用預(yù)取。在 Firefox 上,這可以通過設(shè)置network.dns.disablePrefetch
首選項(xiàng)來完成true
。
另外,默認(rèn)情況下,不會(huì)對(duì)通過 HTTPS 加載的文檔執(zhí)行預(yù)取嵌入式鏈接主機(jī)名。在 Firefox 上,可以通過設(shè)置network.dns.disablePrefetchFromHTTPS
首選項(xiàng)來更改false
。
您可以X-DNS-Prefetch-Control
使用元素http-equiv
上的屬性來發(fā)送頭部服務(wù)器端或單個(gè)文檔<meta>
,如下所示:
<meta http-equiv="x-dns-prefetch-control" content="off">
您可以通過設(shè)置content
為“ on
” 來反轉(zhuǎn)此設(shè)置。
您可以強(qiáng)制特定的主機(jī)名的查找,而不提供使用主機(jī)名通過使用特定的錨rel
上的屬性<link>
與元素鏈接類型的dns-prefetch
:
<link rel="dns-prefetch" href="http://www.spreadfirefox.com/">
在這個(gè)例子中,域名 “ www.spreadfirefox.com ” 將被預(yù)先解決。
同樣,鏈接元素可用于解析主機(jī)名而不提供完整的 URL,但只能通過在主機(jī)名前面加兩個(gè)斜線來解析:
<link rel="dns-prefetch" href="//www.spreadfirefox.com">
強(qiáng)制預(yù)取主機(jī)名可能很有用,例如,在網(wǎng)站的主頁上強(qiáng)制預(yù)先解析在整個(gè)網(wǎng)站中經(jīng)常被引用的域名,即使它們沒有在主頁上使用。即使主頁的性能可能不會(huì)受到影響,這也會(huì)改善網(wǎng)站的整體性能。