服务器状态代码301和302

        由于最近一直在接触与抓网站相关的工作,在无意之中接触到了一些之前不知道的有关网站跳转的知识,我简单的介绍一下。

        先讲一下重定向,大家应该都有所了解,简单来说就是地址A跳转到地址B(简略理解就是平常所见的页面跳转)。百度百科的解释:重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

        301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)——这是它们的共同点。

        他们的不同在于。301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。  

        个人理解,301的意思就像是你自己原本有套房子,然后你想再买套房子,但是钱不够,没办法,你只能卖了原来的那套房,然后去买新的那套房,那么你原来的那套房你肯定就不能住了,只能住新的那套房(相当于你现在只能访问这个新网站,旧网站已经不属于你了)。302的意思就像是你自己原本有套房,然后还想买套房,然后你发现你父母那边有套房,然后你就不想买了,你想待在你父母那套房子里,然后你肯定可以搬过去住了(住着住着可能就成你的了),但是你原来的自己那套房肯定你也是随时可以回去住的(相当于获取新的网站资源,同时旧的网站资源还是你的)。

        到这里,大家可以明显感受到了302这种临时性跳转的优点,但是还是建议大家使用301这种跳转方式。为什么???

        302跳转(住着住着可能就成你的了-----------网址劫持)通过302跳转,问题就在于,有的时候搜索引擎,尤其是Google,并不能总是抓取目标网址B。比如说,有的时候A 网址很短,但是它做了一个302 重定向到B 网址,而B 网址是一个很长的乱七八糟的URL 网址,甚至还有可能包含一些问号之类的参数。很自然的,A 网址更加用户友好,而B 网址既长,又不用户友好。这时Google 很有可能会仍然显示网址A。由于搜索引擎排名算法只是程序而不是人,在遇到302 重定向的时候,并不能像人一样的去准确判定哪一个网址更适当,这就造成了网址URL劫持的可能性。也就是说,一个不道德的人在他自己的网址A 做一个302 重定向到你的网址B,出于某种原因, Google 搜索结果所显示的仍然是网址A,但是所用的网页内容却是网址B 上的内容(原本是你父母的房子,却变成了你名下的房子),这种情况就叫做网址URL 劫持。

        302跳转,被一些人用来作弊,从网站A(网站比较烂)上做了一个302跳转到网站B(搜索排名很靠前),这时候有时搜索引擎会使用网站B的内容,但却收录了网站A的地址,这样在不知不觉间,网站B在为网站A作贡献,网站A的排名就靠前了。所以,现在302重定向很容易被搜索引擎误认为是利用多个域名指向同一网站,那么你的网站就会被封掉,罪名是“利用重复的内容来干扰Google搜索结果的网站排名”。

        先就写这么多吧!

你可能感兴趣的:(服务器状态代码301和302)