网站返回状态码302如何解决?
(从网址A做一个302重定向到网址B时,主机服务器的隐含意思是网址A随时有可能改主意,重新显示本身的内容或转向其他的地方。大部分的搜索引擎在大部分情况下,当收到302重定向时,一般只要去抓取目标网址就可以了,也就是说网址B)解决办法:将https改成http试试。
1、“http_200”的意思是 成功处理了请求。
2、“http_302”的意思是(临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
1、http_xxx是超文本传输协议,http定义了信息如何被格式化、如何被传输,以及在各种命令下服务器和浏览器所采取的响应。协议即超文本传输协议,是Internet上行信息传输时使用最为广泛的一种非常简单的通信协议。部分局域网对协议进行了限制,只允许用户通过HTTP协议访问外部网站。
2、http_xxx数字的意思如下:
(1)以1开头的http状态码表示临时响应并需要请求者继续执行操作的状态代码。
举例:http_101表示(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。
(2)以2开头的http状态码表示请求成功。
举例:http_201表示请求成功并且服务器创建了新的资源。
(3)以3开头的http状态码不是重定向代码,也是常见的代码。
举例:http_302表示(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
(4)以4开头的http状态码表示请求出错。
举例:http_401表示请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。
(5)以5开头状态码并不常见,但是我们应该知道。
举例:http_501表示(尚未实施) 服务器不具备完成请求的功能。
2xx - 成功 这类状态代码表明服务器成功地接受了客户端请求。
200 - 确定。客户端请求已成功。
301 - 目标永久性转移
302 - 目标暂时性转移
302重定向又称之为302代表暂时性转移(Temporarily Moved ),英文名称:302 redirect。 也被认为是暂时重定向(temporary redirect),一条对网站浏览器的指令来显示浏览器被要求显示的不同的URL,当一个网页经历过短期的URL的变化时使用。一个暂时重定向是一种服务器端的重定向,能够被搜索引擎蜘蛛正确地处理。
301是永久重定向,常用的场景是使用域名跳转。
比如,我们访问 http://wwwzhihucom 会跳转到 https://wwwzhihucom ,发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。
302是临时重定向,用来做临时跳转。接着上面的例子,重定向到 https://wwwzhihucom 的请求又会通过302重定向到 https://wwwzhihucom/signupnext=%2F
不过,看上去301和302都是代表重定向的意思。那具体有啥区别呢?
http 10规范中有2个重定向——301和302,在http 11规范中存在4个重定向——301、302、303和307。
其中301在http 10以及http 11中都表示永久重定向,就不讨论了。
那302呢?
在http10中,302的规范是这样的:
原请求是post,则不能自动进行重定向;原请求是get,可以自动重定向。
但是浏览器和服务器的实现并没有严格遵守HTTP中302的规范,服务器不加遵守的返回302,浏览器即便原请求是post也会自动重定向,导致规范和实现出现了二义性。
所以HTTP 11中将302的规范细化成了303和307
继承了HTTP 10中302的实现(即原请求是post,也允许自动进行重定向,结果是无论原请求是get还是post,都可以自动进行重定向)。
307则继承了HTTP 10中302的规范(即如果原请求是post,则不允许进行自动重定向,结果是post不重定向,get可以自动重定向)。
0条评论