http状态码中301和302有什么区别

这篇文章给大家介绍http状态码中301和302有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

状态码(Status Code)的职责是当客户端向服务器发送请求时,描述返回的请求结果。
标准状态码由3位数字组成,主要是以下5类:

  类别 原因短语
1XX Informational(信息性状态码) 接受的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错

301、302等状态码是响应报文中状态行中的组成部分。

✔ 含义:

301 redirect: 301 代表永久性转移(Permanently Moved)

302 redirect: 302 代表暂时性转移(Temporarily Moved )

✔ 相同点:都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)

✔ 不同点:

1、301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;

    302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。

2、302会出现“网址劫持”现象,从A网址302重定向到B网址,由于部分搜索引擎无法总是抓取到目标网址,或者B网址对用户展示不够友好,因此浏览器会仍旧显示A网址,但是所用的网页内容却是B网址上的内容。

✔ 应用场景

301:域名需要切换、协议从http变成https;

302:未登录时访问已登录页时跳转到登录页面、404后跳转首页

关于http状态码中301和302有什么区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。