重定向状态码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端口而不是以来服务器跳转。
 
参考:
 
 
 

© Ryan Tang 2021 - 2025