由于重定向会触发额外的HTTP请求响应周期,并会额外延长往返时间延迟,因此,将应用发出的重定向数量降至最低至关重要。避免HTTP重定向可以缩减用户等待网页加载的时间。我们建议您仔细斟酌自己网站设计,看看可以在哪些方面提升网站性能。
以下是重定向模式的一些优劣示例:
优质:example.com使用响应性网页设计,无需重定向
中等:example.com -> m.example.com/home 劣质:example.com -> www.example.com -> m.example.com -> m.example.com/home Web应用程序重定向的几个原因 有时有必要为您的应用到浏览器从一个URL到另一个重定向。Web应用程序的重定向问题有几个原因: 以指示已移动的资源的新位置。 要跟踪的点击和展示和日志提交页面。 预留多个域,允许“用户友好”或“虚荣”域名和网址,并赶上拼错/输错网址。 一个网站或应用程序的不同部分,不同的国家代码顶级域名,不同的协议(HTTP到HTTPS),不同的安全策略(例如:未经认证和认证网页)等之间的连接。 要尾随斜线添加到URL目录名,使它们的内容访问浏览器。 不管是什么原因,重定向会触发额外的HTTP请求- 响应周期,并添加往返时间延迟。重要的是要尽量减少您的应用程序发出的重定向的数量- 特别是启动您的主页的所需资源。要做到这一点,最好的方法是您使用重定向限制。 建议
消除网站不必要的重定向
这里有一些策略,简单地消除不必要的重定向: 在您的页面永远不要引用已知重定向到其他URL的URLs。当资源改变位置时,您的应用程序需要有一个更新URL引用的方法。 永远不要使用一个以上的重定向来获得给定的资源。例如,如果C是目标页,并且有两个不同的开始点,A和B,A和B应直接定向到C;A不应该先定向到B,再从B重定向到C。 尽量减少出现重定向,但实际上并不提供内容的外域数量。有时候,人们需要从多个域重定向,以获得不正确的用户输入(拼写错误/输错网址)。但是,如果你要引导用户他们可以从多个URL到达你的网站,你需要从你的名字每一个变种去购买新的域名。 使用服务器重写 以便用户输入url 许多Web服务器支持内部的“重写”。这允许你配置从一个URL到另一个URL的映射;当客户端请求无效的URL,服务器自动重新映射到正确的资源,而不发出重定向。一定要使用他们获得你无法控制的URL。千万不要把它们作为易更新URL引用的一个手段;你应该总是使用一个单一的URL指向一个资源。此外,如果可能缓存资源,还要避免使用它们。自动在目录名称末尾添加所需的尾随斜线是用户输入的URL,这是一个很好的重写机制的例子。
在后台跟追网络流量
为了跟追网页各种属性之间的流量,有些网站使用中间重定向到一个页面,它记录了一个独立的中央服务器上的所有属性。然而,因为这样的重定向会添加页面过渡之间的延迟,应该避免他们,并寻找在后台记录页面访问量的其他方式。 记录页面访问,一个流行的方法是在目标页面(或onload事件处理程序)的底部上包括一段JavaScript,当用户加载页面时,通知日志服务器。这样做的最常见的方式是建立一个请求给服务器,并把各种参数的数据进行编码加密。为了保持HTTP响应非常小的,请求一个透明的1x1像素的图像是一个很好的选择。稍微更优化的方法是使用一个HTTP204响应(“没有内容”),这稍微比1x1的GIF小。 |