避免重定向什么是重定向?ASP.NETwebform开发来说
优采云 发布时间: 2021-08-15 01:19避免重定向什么是重定向?ASP.NETwebform开发来说
二、避免重定向
什么是重定向?
重定向用于将用户从一个 URL 重新路由到另一个 URL。
常用重定向的类型
301:永久重定向,主要用于告诉搜索引擎网站的域名改变后网站的域名也改变了,旧域名的数据和链接号要转移到新域名,以免让网站的排名受到域名变化的影响。
302:临时重定向,主要是通知浏览器在post请求后转移到新的URL。
304: Not Modified,主要用于当浏览器在其缓存中保留了组件的副本,并且组件已经过期时,这是浏览器会产生一个有条件的GET请求,如果服务器组件没有被修改的话,它会返回一个304状态码,不携带body,告诉浏览器副本可以重用,减少响应大小。
重定向如何影响性能?
页面重定向时,整个HTML文档的传输会延迟。在 HTML 文档到达之前,页面上不会显示任何内容,也不会下载任何组件。
看一个实际例子:对于ASP.NET webform开发,新手很容易犯一个错误,就是把页面的连接写成服务端控件的后端代码,比如用一个 Button 控件在其后台单击事件 Write: Response.Redirect("");但是这个Button的作用只是传递URL,效率非常低,因为点击Button后,先向服务器发送一个Post请求,服务器处理Response.Redirect(""),然后发送一个302响应给浏览器,浏览器根据响应的 URL 发送 GET 请求。正确的做法应该是在html页面中直接使用a标签作为链接,避免多余的帖子和重定向。
重定向的应用场景
1. 跟踪内部流量
当你有一个门户首页,想要跟踪用户离开首页后的流量时,此时可以使用重定向。例如,主页新闻链接的主机名后跟标识的参数。点击后会生成301重定向,记录离开门户首页的流量。
我们知道重定向如何损害性能。为了达到更好的效率,可以使用Referer日志来跟踪内部流量的去向。每个 HTTP 请求都有一个 Referer 代表原创请求页面(从书签打开或直接输入 URL 等操作除外)。记录每个请求的 Referer 避免向用户发送重定向,从而提高响应时间。
2. 跟踪出站流量
有时链接可能会使用户远离您的网站。在这种情况下,使用 Referer 是不现实的。
您还可以使用重定向来解决跟踪出站流量的问题。以百度搜索为例。百度通过将每个链接打包成302重定向来解决跟踪问题。比如搜索关键词“track outbound traffic”,搜索结果的第一个URL后面跟着一串字符,即使你搜索的结果没有变化,但是这个字符串是动态变化的。我觉得这里的搜索连接网址好像不需要改。我不知道它扮演什么角色?
除了重定向,我们还可以选择使用信标——一个收录在 URL 中的跟踪信息的 HTTP 请求。跟踪信息可以从信标网络服务器的访问日志中提取。信标通常是 1px*1px 的透明图片,但是 204 响应更好,因为它更小,从不缓存,从不更改浏览器。状态。