【发布时间】:2016-07-07 21:02:02
【问题描述】:
假设我有一个服务器在 url https://example.com/ 处提供 HTML 文件,这指的是在 url https://test.com/mystyles.css 处的 css 文件。作为 HTTP2 连接的一部分,是否可以将 mystyles.css 文件与 html 内容一起推送,以便浏览器使用此 css 内容?
我尝试在我的本地主机上使用自签名证书创建这样一个请求(并且我已经在我的浏览器中预先为两个主机创建了一个安全异常),方法是在请求到达http://localhost/ 时发送 html 文件,并在 :authority 或 Host 标头中推送具有不同主机名/端口的 css。但是,在整页刷新时,CSS 文件是在来自服务器的单独请求中获取的,而不是使用推送的 css 文件。
请参阅this gist 以获取我用来测试的文件。如果我访问http://localhost:8080/,则文本为红色,但如果我访问http://test:8080/,则为绿色,表示如果来源相同,则使用推送的内容。
是否需要使用标题组合才能使其正常工作?可能会调用 CORS?
【问题讨论】:
-
根据规范,如果你用证书做对了,它不会是非法的。但是,我认为浏览器目前不接受它。
-
规格是否明确说明了这一点?能给个链接吗?
-
section 8.2 的最后一段之前的第二个,然后是第 10.1 节。然后到另一个 RFC,当服务器在 TLS 下具有权威性时,这里是:tools.ietf.org/html/rfc2818#section-3。
标签: cross-domain http2