我不确定重定向从http到https时使用哪个方法最好。目前我正在使用IIS重写规则进行重定向。我阅读的指南要么使用301要么使用303来执行此操作。但是,经过阅读301和303之后,我仍然不确定哪种最好使用。
据我理解,它们在将http重定向到https方面的作用几乎相同。
它们有什么区别,并且使用其中一种是否会影响SEO?
根据规范:
301301(永久移动)状态代码表示目标资源已被分配了新的永久URI,并且
今后对该资源的任何引用都应使用所包含的URI之一。
具有链接编辑功能的客户端应自动重新链接到有效请求URI的引用一个或多个新的
引用服务器发送的位置,如果可能的话。服务器应在响应中生成一个Location头字段,其中包含新永久URI的首选URI引用。用户代理可以使用Location字段值自动重定向。服务器的响应负载通常包含一个简短的超文本注释,其中包含指向新URI的链接。
Note: For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 307 (Temporary Redirect) status code can be used instead.
默认情况下,301响应可以被缓存;也就是说,除非方法定义或显式缓存控件另有说明
303(See Other)状态代码表示服务器正在将用户代理重定向到不同的资源,如"Location"头字段中所示的URI,旨在为原始请求提供间接响应。用户代理可以执行针对该URI的检索请求(如果使用HTTP,则为GET或HEAD请求),该请求也可能会被重定向,并将最终结果呈现为对原始请求的答案。请注意,“Location”头字段中的新URI不被视为等价于有效请求URI。
此状态代码适用于任何HTTP方法。它主要用于允许POST操作的输出将用户代理重定向到所选资源,因为这样做提供了与POST响应相对应的信息,以可分别识别,书签和缓存的形式,独立于原始请求。
对于GET请求的303响应表示源服务器没有可以通过HTTP传输的目标资源的表示。但是,“Location”字段值引用描述目标资源的资源,使得对该其他资源进行检索请求可能会产生对接收者有用的表示,而不意味着它表示原始目标资源。请注意,关于什么可以表示,什么表示是足够的以及什么可能是有用描述的问题的答案超出了HTTP的范围。
除HEAD请求的响应外,303响应的表示应包含一个短的超文本注释,其中包含指向"Location"头字段中提供的相同URI引用的超链接。