URL重定向和URL重写

1、URL重定向
URL重定向和URL重写之间的用词差异乍一看可能很细微,但这对于向客户端提供资源具有重要意义。
ASP.NET Core的URL重写中间件能够满足两者的需求。

URL重定向是客户端操作,指示客户端访问另一个地址的资源。这需要往返服务器。 客户端对资源发出新请求时,返回客户端的重定向URL会出现在浏览器地址栏。

如果将 /resource 重定向到 /different-resource,客户端会请求 /resource。服务器通过指示重定向是临时还是永久的状态代码作出响应,表示客户端应该获取 /different-resource 处的资源。客户端在重定向URL处对资源执行新的请求。


将请求重定向到不同的URL时,可指定重定向是永久的还是临时的。如果资源有一个新的永久性URL,并且你希望指示客户端所有将来的资源请求都使用新URL,则使用"301(永久移动)"状态代码。收到301状态代码时,客户端可能会缓存响应。如果重定向是临时的或一般会更改的,则使用"302(已找到)"状态代码,以使客户端将来不应存储和重用重定向URL。


2、URL重写
URL 重写是服务器端操作,提供来自不同资源地址的资源。重写URL不需要往返服务器。 重写的URL不会返回客户端,也不会出现在浏览器地址栏。/resource 重写到 /different-resource 时,客户端会请求 /resource ,并且服务器会在内部提取 /different-resource 处的资源。尽管客户端可能能够检索已重写URL处的资源,但是, 客户端发出请求并收到响应时,并不会知道已重写URL处存在的资源。

原文地址:https://www.cnblogs.com/ahao214/p/13661136.html