302和302的详细解析
来源:互联网 发布:asp php 编辑:程序博客网 时间:2024/06/05 15:25
一直对http状态码301和302的理解比较模糊,在遇到实际的问题和翻阅各种资料了解后,算是有了一定的理解。这里记录下,希望能有新的认识。大家也共勉。
官方的比较简洁的说明:
301 redirect: 301 代表永久性转移(Permanently Moved)
302 redirect: 302 代表暂时性转移(Temporarily Moved )
ps:这里也顺带记住了两个比较相近的英语单词(permanently、temporarily),嘻哈!
详细来说,301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)——这是它们的共同点。他们的不同在于。301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。
这里开启傻瓜自问自答模式(自己可能想到的疑问):
1、什么是重定向啊?
就是地址A跳转到地址B啦。百度百科的解释:重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
2、可是,为什么要进行重定向啊?什么时候需要重定向呢?
想跳就跳,就跳的漂亮。还是借鉴百度百科:
之前做过一个重构的项目,由于各种原因,我们的网站的登录以及注册部分需要剥离为另一个网站,域名和之前的不同,所以,我们需要保证旧的地址也能重定向到地址中去,我们就在旧的系统的node层中作了一个重定向,代码类似这样:
这里没有设置状态码,发现默认是302跳转,然后我们设置了301状态码,类似这样:
用fiddle抓包(上面的302调整我就不上图了),看到效果:
以上是使用Express,用nodejs原生的代码实现类似这样:
- 302和302的详细解析
- SUID和SGID的详细解析
- SUID和SGID的详细解析
- SUID和SGID的详细解析
- 有限状态机的构造和详细解析
- 句柄的详细解析
- URI的详细解析
- URI的详细解析
- WSAGetLastError 的详细解析
- icvGetUsedValues的详细解析
- EventBus的详细解析
- Activity的详细解析
- Fragment的详细解析
- Ajax的Get方式和Post方式的详细解析
- 详细解析Spring事务的配置和OpenSessionInview的作用
- 详细解析抽象类和接口的区别
- 详细解析抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 百练 1321: 棋盘问题
- php 大数据量及海量数据处理算法总结
- 多目标优化系列(六)SPEA
- DCGAN论文笔记+源码解析
- ZZULIOJ【2173】GJJ的日常之玩游戏【思维】
- 302和302的详细解析
- Xshell Linux服务器相关操作命令使用说明收集
- [Usaco2008 Oct]牧场行走
- hihoCoder #1014 : Trie树
- jdk安装
- echarts地图分布-实例
- php代码20个实用技巧 ------ 转发自菜鸟教程
- Swing 添加滚动条
- HDU4864(机器数和任务数、贪心)