Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
yygmind opened this issue Aug 20, 2019 · 17 comments
Open
Labels

Comments

@yygmind
Copy link
Contributor

yygmind commented Aug 20, 2019

No description provided.

@rookiezh
Copy link

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

@blank1u
Copy link

blank1u commented Aug 20, 2019

https://http.cat/301
https://http.cat/302

@aurora94
Copy link

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

@ypf0088
Copy link

ypf0088 commented Aug 20, 2019

301: 永久重定向

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

302: 临时重定向

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

@yaoqifa
Copy link

yaoqifa commented Aug 20, 2019

解释见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
Copy link

重定向

@nowherebutup
Copy link

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

@ScholatLouis
Copy link

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

@JaniceDong
Copy link

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

@song-le-yi
Copy link

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

@wwervin72
Copy link

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

@thinkfish
Copy link

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

@yygmind yygmind added the 网络 label Dec 16, 2019
@Rabbitzzc
Copy link

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

@TheFirstSunday
Copy link

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

@Dylan0916
Copy link

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

同问

@like0413
Copy link

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

@ScholatLouis
Copy link

ScholatLouis commented Nov 14, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests