文件
一個 專案

push

配置伺服器使用 HTTP/2 伺服器推送預先將資源發送給客戶端。

可以通過指定回應的 Link header 來連結資源以進行伺服器推送。此指令將自動推送上游 Link header 中以下列格式描述的資源

  • <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