文档
一个 项目

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