301和302重定向注意事项
0
最近发现聊天室退出后,再次创建房间提示居然是房间不存在,这让我表示很郁闷。
因为最近都没怎么做自己的网站,也不知道那里的问题,最后看了很久才发现原来是之前改了跳转方式的问题。
最开始我认为跳转到下一个页面只要不是临时提示页面都可以用301跳转,原来大错特错了。
我们看一下下面几张图:
302跳转控制台信息


301跳转控制台信息


看了之后就发现,301第二次跳转的时候没去请求服务器,直接使用的缓存,所有房间没有创建。
所以要慎用301跳转,301跳转主要用于一个连接永远跳转的另外一个连接,也就是说如果这个连接里面会执行代码再跳转的情况就不要用301跳转了。
一般主要用于网站连接改版,网站迁移使用。
学艺不精啊,以后还要多多学习。
还有一点POST请求的301重定向,再次POST提交时还是会提交数据的,而不是使用缓存。
HTTP/1.1以后,推荐使用303和307对原来的302进行替换。功能都是一样,主要区别在于对POST请求的处理:
303:表示POST请求已经被处理,可以使用GET方法到location获取。307:表示POST请求没有被处理,重新向location发起POST请求。
对于POST参数获取:
301、302、303进行POST重定向时,均使用GET到新的location,而且不能获取到POST参数。307进行POST重定向时,使用POST到新的location,能获取到POST参数。