Skip to content

第 128 题:Http 状态码 301 和 302 的应用场景分别是什么 #249

Open
@yygmind

Description

@yygmind
Contributor
No description provided.

Activity

rookiezh

rookiezh commented on Aug 20, 2019

@rookiezh

301:永久重定向;
302:临时重定向;

XXXXXLXL

XXXXXLXL commented on Aug 20, 2019

@XXXXXLXL
https://http.cat/301
https://http.cat/302
aurora94

aurora94 commented on Aug 20, 2019

@aurora94

301重定向是永久的重定向,搜索引擎在抓取新的内容的同时也将旧的网址替换为了重定向之后的网址。
302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索搜索引擎认为新的网址是暂时的。

ypf0088

ypf0088 commented on Aug 20, 2019

@ypf0088

301: 永久重定向

常用的例如域名跳转:http:**** => https:****

302: 临时重定向

需要向服务端请求是否过期,过期返回新数据,没过期返回状态吗302,然后客户端重定向,期间差别主要在于数据包的大小(没有过期的情况下,不需要再在数据包中附加数据返回,从而加速网络传输,提升速度)

yaoqifa

yaoqifa commented on Aug 20, 2019

@yaoqifa

解释见mdn: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
301 Moved Permanently
被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。
302 Found
请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
303 See Other
对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。
304 Not Modified
如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。

JaniceDong

JaniceDong commented on Aug 20, 2019

@JaniceDong

重定向

nowherebutup

nowherebutup commented on Aug 20, 2019

@nowherebutup
  • 301应用场景: 域名到期不想继续用这个,换了地址
  • 302应用场景: 做活动时候,从首页跳到活动页面,
ScholatLouis

ScholatLouis commented on Aug 20, 2019

@ScholatLouis

@buwanmei2
图中SEO这里说 301会把两个链接收录到同一个链接,不会像302一样导致链接数减少从而降低排名
最后在状态码这里又说 针对SEO,302更优于301。
这说法没问题吗?

JaniceDong

JaniceDong commented on Aug 21, 2019

@JaniceDong

@ScholatLouis 我觉得这个说的不对,这个图忘了在哪里看到的了,大家只看使用场景就ok了

song-le-yi

song-le-yi commented on Aug 21, 2019

@song-le-yi

这个图在之前发过的那道301,302对seo有什么影响那道题里出现过

wwervin72

wwervin72 commented on Aug 23, 2019

@wwervin72

301: 资源永久移动到新的位置,并且这个响应默认情况下会被缓存,只有在第一次的时候,才会去真正的发起第一个请求,后面的都会被缓存起来,直接跳转到 redirect 的请求
image
image
302: 临时跳转请求,默认情况下不会缓存。
image

thinkfish

thinkfish commented on Aug 30, 2019

@thinkfish

对于用户来说没有什么区别,都是从一个旧地址跳转到了一个新地址,内容也指向了新地址,主要区别在搜索引擎
301: 认为旧地址不会再用到,会把地址跟内容都更新成新地址及其内容
302: 未登录用户跳转到登录页,请求地址404,跳转到首页等操作,只是临时的。搜索引擎认为跳转只是临时的,保留旧地址,抓取新的内容。

Rabbitzzc

Rabbitzzc commented on Mar 31, 2021

@Rabbitzzc

可以看看百度首页 http://www.baodu.com 中的第一个请求(307)

TheFirstSunday

TheFirstSunday commented on Apr 19, 2022

@TheFirstSunday

301: 永久重定向
302: 暂时性重定向

Dylan0916

Dylan0916 commented on Apr 20, 2022

@Dylan0916

@buwanmei2
图中SEO这里说 301会把两个链接收录到同一个链接,不会像302一样导致链接数减少从而降低排名
最后在状态码这里又说 针对SEO,302更优于301。
这说法没问题吗?

同问

like0413

like0413 commented on Nov 14, 2022

@like0413

想问下,浏览器对301和302的缓存情况是怎样的?我的理解是:
1、301会缓存
2、302不会缓存,除非指定cache-control或expires

ScholatLouis

ScholatLouis commented on Nov 14, 2022

@ScholatLouis
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @thinkfish@ScholatLouis@rookiezh@wwervin72@yygmind

        Issue actions

          第 128 题:Http 状态码 301 和 302 的应用场景分别是什么 · Issue #249 · Advanced-Frontend/Daily-Interview-Question