redirect - 客户端与服务器端重定向的最佳实践 : When to use what?

标签 redirect client webserver

据我所知,大多数语言都支持服务器端重定向(asp.net: Response.Redirect, PHP: header( 'newpage' ) ; )。您还可以使用 JavaScript (window.location.href="newLocationURL") 进行重定向。

您什么时候会选择其中之一?

对于 ASP.net/IIS7(集成模式下的应用程序池,启用 32 位应用程序=false),我注意到即使页面具有 302 header ,整个页面正文也会发送到客户端。

I believe this is not the case with PHP ,仅发送 header ?去引用 客户端重定向意味着以下步骤:客户端->服务器端->客户端->服务器端->客户端。

服务器端重定向意味着:客户端 -> 服务器端 -> 客户端(仅 header )* -> 服务器端 -> 客户端。

W3C 标准或服务器端重定向实现是否因一种 Web 服务器技术而异?

编辑:我只关心 Response.Redirect(在 asp.net 中)而不是 server.transfer,至少对于本次讨论来说是如此

最佳答案

JavaScript 示例实际上不是重定向。没有办法 301/302回复。这只是一个简单的请求,在页面到达后很长一段时间内发生在某个 Javascript 事件期间。如果您在页面加载期间执行此操作,那么它会比真正的重定向产生更多开销,并且它也无法在禁用 JS 的浏览器上运行。

重定向将从服务器端通过 301/302 响应启动。所有 Web 应用程序语言/框架默认为 302。您通常可以通过添加一个额外的参数或指示这一点的代码行将其设为 301。 301 的好处是搜索机器人(不再)对特定请求进行索引。

关于redirect - 客户端与服务器端重定向的最佳实践 : When to use what?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311448/

相关文章:

javascript - 基于美国州的重定向页面,使用 Maxmind geoip2 JS

.htaccess - 将页面从旧站点重定向到新站点 - 一个接一个

C# TCP Socket 客户端拒绝连接

java - 没有可用的 'org.springframework.cloud.client.discovery.DiscoveryClient' 类型的合格 bean

php - Symfony:Apache 与内置 PHP 服务器

python - Flask-login 不重定向到上一页

php - 如何重定向到 Wordpress 中的不同管理页面?

c - 检测断开连接的客户端而不阻塞 (C)

java - 关于tomcat的负载能力(最好选择哪个版本?)

linux - 使用 Specweb 2009 对 Apache 进行基准测试