Http 状态码 301 Permanent Rediret 302 Temporary Redirect、 重定向 重写

HTTP状态码301和302是什么?

1、HTTP状态码301

HTTP状态码301表示永久性转移(Permanent Redirect),这意味着请求的资源已经被分配了一个新的URI,以后的引用应该使用资源现在所指的URI。

HTTP 301状态码表示请求的资源已被永久移动到一个新的位置,当客户端接收到这个状态码时,它应该更新其链接,以便将来的请求直接使用新的URL,这种重定向通常用于网站的重构或合并,确保旧网址的用户能够无缝地访问到新的内容位置。

2、HTTP状态码302

HTTP状态码302表示临时性转移(Temporary Redirect),它告诉客户端在此次请求中,应临时地从不同的URI响应请求,但客户端应继续使用原有的URI以便于以后的请求。

一、定义不同

301状态码表示请求的资源已被永久性地移动到新位置,将来任何新的请求都应使用一个新的 URI;

302状态码表示请求的资源现在临时从不同的 URI 响应请求,由于这样的重定向是临时的,客户端应继续向原有地址发送以后的请求。

二、使用场景不同

301重定向通常用于永久性的URL改变,例如网站迁移、改变域名等;302重定向通常用于临时性的内容改变和URL重定向,例如网站维护期间,原URL临时跳转到维护通知页面。

三、对SEO的影响不同

对于搜索引擎而言,301意味着原网页已经不存在,需要更新索引;302表示原网页仍然存在,只是暂时修改了地址,因此搜索引擎会保留原网页的索引。


URL 重写 vs URL 重定向

1、重写是 纯服务端的功能 重定向:需要客户端参与

重写 浏览器地址栏中的地址不会改变。就客户端而言,是感知不到URL重写的 request 1次

重定向 浏览器地址变化了,变成重定向的地址啦。 Request 2次



》》》》》ASP.NET Core的URL重写中间件能够同时满足二者的需求。

》》》》何时使用URL重写中间件

当无法在Windows Server上使用IIS重写模块、Apache服务器上的Apache mod_rewrite模块、Nginx上的URL重写或应用程序托管在HTTP.sys服务器(以前称为WebListener)上时,请使用URL重写中间件。推荐在IIS,Apache或Nginx中使用基于服务器的URL重写技术的主要原因是中间件不支持这些模块的全部功能,并且中间件的性能可能无法达到这些模块的性能。但是,这些服务器重写模块的某些功能不适用于ASP.NET Core项目,例如IIS Rewrite模块的IsFile和IsDirectory。在这些情况下,请改用中间件







示例应用程序将来自/apache-mod-rules-redirect/(.*)的请求重定向到/redirected?id=$1,响应码为302(Found)。

中间件支持以下Apache mod_rewrite服务器变量:

CONN_REMOTE_ADDR

HTTP_ACCEPT

HTTP_CONNECTION

HTTP_COOKIE

HTTP_FORWARDED

HTTP_HOST

HTTP_REFERER

HTTP_USER_AGENT

HTTPS

IPV6

QUERY_STRING

REMOTE_ADDR

REMOTE_PORT

REQUEST_FILENAME

REQUEST_METHOD

REQUEST_SCHEME

REQUEST_URI

SCRIPT_FILENAME

SERVER_ADDR

SERVER_PORT

SERVER_PROTOCOL

TIME

TIME_DAY

TIME_HOUR

TIME_MIN

TIME_MON

TIME_SEC

TIME_WDAY

TIME_YEAR

中间件支持以下IIS URL重写模块服务器变量:

CONTENT_LENGTH

CONTENT_TYPE

HTTP_ACCEPT

HTTP_CONNECTION

HTTP_COOKIE

HTTP_HOST

HTTP_REFERER

HTTP_URL

HTTP_USER_AGENT

HTTPS

LOCAL_ADDR

QUERY_STRING

REMOTE_ADDR

REMOTE_PORT

REQUEST_FILENAME

REQUEST_URI

基于方法的规则

基于IRule接口的规则

相关推荐
珠***格1 小时前
双碳目标下:四可装置如何助力光伏消纳与碳数据上报
网络·人工智能·分布式·安全·边缘计算
mounter6251 小时前
绕过主机:通过 Devmem TCP 运行 RDMA 应用
网络·网络协议·tcp/ip·rdma·devmem
我星期八休息2 小时前
网络编程—网络层
开发语言·前端·网络·人工智能·智能路由器
科力锐品牌君3 小时前
行业龙头|科力锐全链路防勒索 + 多中心容灾方案,构筑河南翔宇医疗业务安全闭环!
网络·数据库·分布式·安全·数据安全·备份
2401_868534784 小时前
C语言与C++在基础语法上的区别
网络·网络协议
黄俊懿5 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第三节:CDN扩展-多地址直连
网络·计算机网络·架构·系统架构·cdn·dns·架构设计
Dr.kangder5 小时前
嵌入式总线设备解析——TTE总线应用与实践
开发语言·网络·算法·嵌入式·多任务·同步机制
数据知道6 小时前
IDOR 不安全的直接对象引用:API 越权实战检测
java·开发语言·网络·安全·网络安全
WHS-_-20227 小时前
基于网络感知自适应树与辅助路由加速地理分布式机器学习
网络·分布式·机器学习
果果燕7 小时前
实习笔记(二)NFS 嵌套挂载问题完整复盘
linux·服务器·网络