【发布时间】:2019-08-18 05:58:36
【问题描述】:
问题
我有一个网站,它使用 302 重定向为新访问者建立新会话。我在我的个人网站上创建了一个基本流程的演示:
- https://crenshaw.dev/redirect/index.php (302)
- https://crenshaw.dev/session/redirect/index.html (200)
index.html 使用资源https://mac9416.com/demos/style.css(我只需要一个外部域名)。
我想指示浏览器连接到mac9416.com的302而不是200。
可能的解决方案
某些浏览器支持资源提示标头。下面是一些例子:
示例 5
链接:https://widget.com; rel=dns 预取
链接:https://example.com;相对=预连接
链接:https://example.com/next-page.html; rel=prerender;
链接:https://example.com/logo-hires.jpg;相对=预取; as=图像;
出了什么问题
开发工具在初始请求中显示 Link 标头:
我看到在 200 之后建立了与 mac9416.com 的连接,就在下载资源之前。
我希望看到在 302 之后立即建立连接,或者只是从时间线中丢失。
我使用 Chrome 73 进行了测试。WebPageTest waterfall 看起来几乎一模一样。
注意:我对服务器推送解决方案感兴趣,但目前该网站运行的是 HTTP1.1。
问题
我是否正在尝试一些甚至不受支持的东西?必须仅在非重定向响应上提供资源提示标头吗?
The "Anonymizing redirect" section of the resource hint working draft 让我相信它可以帮助我解决这种情况。但也许我看错了。
许多网站依赖重定向服务来进行分析、恶意软件防护,并在将用户发送到最终目的地之前匿名引荐来源。因为提前知道目的地,所以可以使用预连接提示来启动与目的地来源的连接握手(不泄露任何私人信息),同时处理重定向 - 这掩盖了重定向延迟并减少导航时间最终目的地。
【问题讨论】:
-
一切似乎有点模糊。您使用了哪个资源提示?哪个浏览器?你能给出完整的瀑布图吗?理想情况下是公共网站和网页测试结果。我认为浏览器没有正式声明他们是否接受这些重定向,因此测试将是确认的最佳方式。
-
@BarryPollard 公平积分。 1)预连接,2)Chrome 73,3)我将尝试在我的个人网站上设置一个示例,并在今晚发布 WPT 结果。
-
@BarryPollard 更新了演示。
标签: http-headers web-performance