重定向状态码301,302,307,308
date
Jan 8, 2019
slug
重定向状态码301,302,307,308
status
Published
tags
开发相关
summary
type
Post
区别一览
301 | 永久重定向 | 会更改原有请求方法 |
302 | 临时重定向 | 会更改原有请求方法 |
307 | 临时重定向 | 不会更改原有请求方法 |
308 | 永久重定向 | 不会更改原有请求方法 |
301和302的区别
301
是永久重定向,302
是临时重定向,两者对于用户来说没有区别,但对于搜索引擎来说就不同了,如果服务器返回302
,搜索引擎都会抓取原网站和重定向网站,但搜索结果可能会显示原网站,因为往往原网站网址更短,搜索引擎会选择对用户更友好的网址作为搜索结果显示。301、302和308、307的区别
最主要的区别是对于301,302的重定向,客户端可能会将非GET请求转为GET请求,而如果是返回307、308状态码,客户端不会修改原有的请求方法,对于GET请求两者没有区别。
这个区别是开发项目中无意中发现的,项目的后端接口是经nginx转发的,就像这样:
后来说要转https,好的,改一下就行了:
经同事提醒说直接请求80端口会自动跳转到https的了,结果所有POST接口全报错,调日志一看全是
Request method 'GET' not supported
异常。正确做法应该是直接请求443端口而不是以来服务器跳转。参考: