v2中文文档
项目

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

如果没有这些头信息,许多请求都会失败;这些header头是不需要手动配置的。

推送请求在内部被虚拟化,所以它们是非常轻量的。

语法

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