超级外链工具专题文章第8篇,工具中有少数链接会发生301转向,通过本文的实验证明:虽然不同浏览器的状态显示有差异,但都能够正确处理
图175-1:301重定向
本文和上一篇一样同样属于技术文章,超级外链工具专题只有两篇技术文章,这是第二篇。这两篇文章虽然属于技术文章,但是我觉得你在使用外链工具时还是应该有所掌握,即使看不懂技术细节或技术名词,但是至少了解个大概。
上一篇文章中说到,我的超级外链工具使用的是script的方式提交查询请求,但是网络连接是复杂的,如果是用浏览器直接打开链接,浏览器可以对各种情况作出正确的处理,但是使用script方式引用链接时是否能够正确处理复杂的网络连接?
其中一个最可能遇到的问题就是3xx转向,如:301永久转向、302临时转向。使用浏览器打开链接时无论是什么类型的转向,不管是301头文件转向,还是meta标签转向,又或者js脚本转向,浏览器都可以正确处理。在这些转向中搜索引擎认可的是301转向,因此很多网站转向采用的是301,其它的转向搜索引擎不支持,一般用在特殊的场景。本文就来讨论外链工具是否能够正确处理3xx类的转向。
什么是301转向
转向的意思是你打开A网址时,会自动跳转到B网址。301转向是转向中的一种,通过响应头文件实现,所有3开头的转向都属于这类,只是转向的细节不同。发生301转向时,页面一片空白,不会显示任何内容,转向到新网址后,才会显示新网址的内容。
3xx转向的常见情况是短网址,点开短网址时,页面会跳转到真正的网址,真正的网址一般都是很长的一串。大部分短网址都是使用302,极少数使用301,还有一两个不道德的会使用200。
事件的起因
正因为搜索引擎支持301转向,再加上很多时候确实需要利用转向的方式将链接转移到新的位置,因此301转向是普遍存在的,在外链工具使用的链接中也有不少301转向链接。
使用script引用一个链接时,并不是打开这个页面,而是引用链接对应的页面,如果页面使用了301转向,浏览器是否能够正确的转向到新的链接。如果能够正确转向,那么没有问题,如果不能正确转向,那么链接就失效了,所以这是一个必须要搞清楚的事情。
测试准备
所有状态是3开头的转向都是属于同一类,如:301、302等,本文所说的301转向指的就是以3开头的跳转。
测试对象:http://fasou.fabang.com/s.php?key=4&s=www.baidu.com(网址A),这个链接打开后通过302转向到http://s.fabang.com/cse/search?q=www.baidu.com&s=14349722844967675481&nsid=0(网址B)。
测试目的:使用script引用A网址时,是否能够下载网址B的内容。
测试工具:火狐浏览器和chrome浏览器。
在浏览器中打开
下面将网址A在浏览器中打开,查看数据传输情况。
图175-2:浏览器中打开时的链接
图175-3:浏览器中打开时传输的数据
从上图可以看出从浏览器中打开时有两条数据,第一条显示302跳转,第二条显示200正确,传输的数据是4.77kb,解压后是17.55kb。
图175-4:第一条的下载内容
图175-5:第二条的下载内容
由于第一条是通过301转向,所有没有下载任何页面内容,显示的响应为空,第二条下载了转向后的数据,所以响应内容为页面的源文件。
引用
下面将网址A用script的方式引用,查看数据传输情况。
经测试:火狐浏览器下的数据传输表现和用浏览器打开链接是相同的。下面来看看chrome浏览器。
图175-6:chrome中的数据传输
从上图可以看出chrome能够正确处理302转向,但是显示的传输数据是0B,那么chrome浏览器真的没有传输任何数据吗?接下来使用一个网络抓包程序,监控网络传输情况。
图175-7:网络抓包的连接情况
从上图可以看出,第一条(图中显示在第3行)是转向前的连接,第二条(图中显示在第4行)是转向后的连接,图中显示的远程主机是“zhannei.a.shifen.com”,这是显示问题,这里就不解释了。
第一条传输的数据是571B,这是因为只有传输头文件所以很小,第二条传输的数据是5213B,比浏览器显示的略大,这是因为传输这些数据需要13个数据包,每个数据包都需要经过封装,从而产生了额外的数据。
测试结果
从上面的测试可以得出如下结论:
通过script方式引用链接时,浏览器能够正确处理3xx转向
在火狐浏览器下能够正确显示转向的情况,在chrome下显示的下载数据是0,这只是显示错误而已,事实上chrome也正确的处理了转向。所以不同浏览器对转向的状态显示虽然有差异,但是都能够正确的处理3xx转向。大家在使用外链工具时不必为网址发生3xx转向而担忧。
转载请注明:网创网 www.netcyw.cn/b175.html
加油!!!