https升级改造,有些大型网站首页都307强跳到https,为什么不用301?301和307有什么区别?
答案:2 悬赏:70 手机版
解决时间 2021-01-04 21:30
- 提问者网友:眉目添风霜
- 2021-01-03 21:00
https升级改造,有些大型网站首页都307强跳到https,为什么不用301?301和307有什么区别?
最佳答案
- 五星知识达人网友:过活
- 2021-01-03 22:22
1. 对于301、302的location中包含的重定向url,如果请求method不是GET或者HEAD,那么浏览器是禁止自动重定向的,除非得到用户的确认,因为POST、PUT等请求是非冥等的(也就是再次请求时服务器的资源可能已经发生了变化)。
2. 虽然rfc明确了上述的规定,但是很多的浏览器不遵守这条规定,无论原来的请求方法是什么都会自动用GET方法重定向到location指定的url。就是说现存的很多浏览器在遇到POST请求返回301、302状态码的时候自动用GET请求location中的url,无需用户确认。
3. HTTP 1.1中新增了303、307状态码,用来明确服务器期待客户端进行何种反应。
4. 303状态码其实就是上面301、302状态码的地不合法地动作,指示客户端可以自动用GET方法重定向请求location中的url,无需用户确认。也就是把前面301、302状态码的处理动作地合法化地了。
5. 307状态码就是301、302原本需要遵守的规定,除GET、HEAD方法外,其他的请求方法必须等客户确认才能跳转。
6. 303、307其实就是把原来301、302不地合法地的处理动作给地合法化地,因为发现大家都不太遵守,所以干脆就增加一条规定。
2. 虽然rfc明确了上述的规定,但是很多的浏览器不遵守这条规定,无论原来的请求方法是什么都会自动用GET方法重定向到location指定的url。就是说现存的很多浏览器在遇到POST请求返回301、302状态码的时候自动用GET请求location中的url,无需用户确认。
3. HTTP 1.1中新增了303、307状态码,用来明确服务器期待客户端进行何种反应。
4. 303状态码其实就是上面301、302状态码的地不合法地动作,指示客户端可以自动用GET方法重定向请求location中的url,无需用户确认。也就是把前面301、302状态码的处理动作地合法化地了。
5. 307状态码就是301、302原本需要遵守的规定,除GET、HEAD方法外,其他的请求方法必须等客户确认才能跳转。
6. 303、307其实就是把原来301、302不地合法地的处理动作给地合法化地,因为发现大家都不太遵守,所以干脆就增加一条规定。
全部回答
- 1楼网友:独钓一江月
- 2021-01-03 22:51
301 永久重定向,告诉客户端以后应从新地址访问.
307:对于post请求,表示请求还没有被处理,客户端应该向location里的uri重新发起post请求。
301的post是没有内容的,会将权重转移到新的地址上;而307则会重新post请求到新地址上
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯