文件
一個 專案

push

設定伺服器使用 HTTP/2 伺服器推送預先將資源傳送給客戶端。

透過指定回應的 Link 標頭,可以將資源連結到伺服器推送。此指令會自動推送這些格式中上游 Link 標頭所描述的資源

  • <resource>; as=script
  • <resource>; as=script,<resource>; as=style
  • <resource>; nopush
  • <resource>;<resource2>;...

其中 <resource> 以正斜線 / 開頭(亦即為具有相同主機的 URI 路徑)。只有相同主機的資源才能推送。如果連結的資源是外部資源,或是具有 nopush 屬性,則不會推送。

預設情況下,推送要求會包含一些被視為可以從原始要求複製的安全標頭

  • Accept-Encoding
  • Accept-Language
  • Accept
  • Cache-Control
  • User-Agent

因為假設許多要求在沒有這些標頭的情況下會失敗;這些標頭不需要手動設定。

推送要求在內部會虛擬化,因此非常輕量。

語法

push [<matcher>] [<resource>] {
	[GET|HEAD] <resource>
	headers {
		[+]<field> [<value|regexp> [<replacement>]]
		-<field>
	}
}
  • <resource> 是要推送的目標 URI 路徑。如果在區塊中使用,則可以選擇在前面加上方法(GET 或 POST;預設為 GET)。
  • <headers> 使用與 header 指令 相同的語法操作推送要求的標頭。有些標頭會預設傳遞,不需要明確設定(請參閱上方)。

範例

推送回應中 Link 標頭所描述的任何資源

push

相同,但也會為所有要求推送 /resources/style.css

push * /resources/style.css

僅當用戶端要求 /foo.html 時才推送 /foo.jpg

push /foo.html /foo.jpg