打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HTTP 302错误和HTTP 404错误浅析

HTTP返回状态码的含义比较丰富,随着HTTP版本的变化,状态码也在逐渐增加,以满足越来越多的状态信息传递。

      302错误表示被请求的资源暂时转移(Moved temporatily),然后会给出一个转移后的URL,而浏览器在处理服务器返回的302错误时,原则上会重新建立一个TCP连接,然后再取重定向后的URL的页面;但是如果页面存在于缓存中,则不重新获取。

      404错误表示无法找到请求的资源,一般来说是文件不存在,这时候浏览器直接显示一个错误。

      需要说明的是:实际上HTTP/1.1的RFC中对302和404又定义了很多个子状态码,分别表示多种情况,这里不再一一赘述。

      一般的网站在用户请求的页面不存在的时候,为了友好起见,会返回一个302错误,然后重定向到一个正常页面。因此可以看出,如果服务器在遭受DDOS静态页面请求攻击而请求页面又不存在的时候,服务器返回302错误会比404错误消耗的资源更多(当客户端缓存不存在重定向后的页面的时候),因为每次请求会产生一个附加请求,而这次请求还会产生于一个新的TCP连接上。

       如:浏览器缓存中存在重定向后的页面时:

20:08:56.343584 IP 192.168.1.101.2024 > 202.108.22.5.80: S 71017818:71017818(0) win 65535   <mss 1460,nop,wscale 3,nop,nop,timestamp 0 0,nop,nop,sackOK>
20:08:56.374726 IP 202.108.22.5.80 > 192.168.1.101.2024: S 3060545990:3060545990(0) ack 71017819   win 2920 <mss 1440,nop,nop,sackOK,nop,wscale 2>
20:08:56.374760 IP 192.168.1.101.2024 > 202.108.22.5.80: . ack 1 win 46537
20:08:56.374939 IP 192.168.1.101.2024 > 202.108.22.5.80: P 1:387(386) ack 1 win 46537
20:08:56.409736 IP 202.108.22.5.80 > 192.168.1.101.2024: . ack 387 win 633
20:08:56.412714 IP 202.108.22.5.80 > 192.168.1.101.2024: P 1:436(435) ack 387 win 730
20:08:56.550066 IP 192.168.1.101.2024 > 202.108.22.5.80: . ack 436 win 46483
20:09:56.550674 IP 192.168.1.101.2024 > 202.108.22.5.80: R 387:387(0) ack 436 win 0

     从上面的抓包来看,只有一个TCP连接,也只有一次GET请求。在没有缓存的时候:

20:19:27.639228 IP 192.168.1.101.2199 > 202.108.22.5.80: S 3150289762:3150289762(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,timestamp 0 0,nop,nop,sackOK>
20:19:27.670576 IP 202.108.22.5.80 > 192.168.1.101.2199: S 3636433172:3636433172(0) ack 3150289763 win 2920 <mss 1440,nop,nop,sackOK,nop,wscale 2>
20:19:27.670628 IP 192.168.1.101.2199 > 202.108.22.5.80: . ack 1 win 46537
20:19:27.670864 IP 192.168.1.101.2199 > 202.108.22.5.80: P 1:386(385) ack 1 win 46537
20:19:27.705522 IP 202.108.22.5.80 > 192.168.1.101.2199: . ack 386 win 633
20:19:27.708550 IP 202.108.22.5.80 > 192.168.1.101.2199: P 1:436(435) ack 386 win 730
20:19:27.742161 IP 192.168.1.101.2200 > 202.108.22.5.80: S 4011694727:4011694727(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,timestamp 0 0,nop,nop,sackOK>
20:19:27.770606 IP 202.108.22.5.80 > 192.168.1.101.2200: S 3523825087:3523825087(0) ack 4011694728 win 2920 <mss 1440,nop,nop,sackOK,nop,wscale 2>
20:19:27.770631 IP 192.168.1.101.2200 > 202.108.22.5.80: . ack 1 win 46537
20:19:27.770784 IP 192.168.1.101.2200 > 202.108.22.5.80: P 1:390(389) ack 1 win 46537
20:19:27.805550 IP 202.108.22.5.80 > 192.168.1.101.2200: . ack 390 win 632
20:19:27.811804 IP 202.108.22.5.80 > 192.168.1.101.2200: . 1:1421(1420) ack 390 win 730
20:19:27.812486 IP 202.108.22.5.80 > 192.168.1.101.2200: P 1421:1742(321) ack 390 win 730
20:19:27.812501 IP 192.168.1.101.2200 > 202.108.22.5.80: . ack 1742 win 46537
20:19:27.816437 IP 192.168.1.101.2200 > 202.108.22.5.80: P 390:719(329) ack 1742 win 46537
20:19:27.855014 IP 202.108.22.5.80 > 192.168.1.101.2200: . 1742:3162(1420) ack 719 win 730
20:19:27.856652 IP 202.108.22.5.80 > 192.168.1.101.2200: P 3162:3681(519) ack 719 win 730
20:19:27.856674 IP 192.168.1.101.2200 > 202.108.22.5.80: . ack 3681 win 46537
20:19:27.869872 IP 192.168.1.101.2199 > 202.108.22.5.80: . ack 436 win 46483
20:20:27.857048 IP 192.168.1.101.2199 > 202.108.22.5.80: R 386:386(0) ack 436 win 0
20:20:28.277933 IP 202.108.22.5.80 > 192.168.1.101.2200: F 3681:3681(0) ack 719 win 730
20:20:28.277969 IP 192.168.1.101.2200 > 202.108.22.5.80: . ack 3682 win 46537
20:20:32.857107 IP 192.168.1.101.2200 > 202.108.22.5.80: R 719:719(0) ack 3682 win 0

          可用看到,产生了两个TCP连接,一个用的是2199端口,一个用的是2200端口。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
LVS+keepalived学习 --生产环境实践(单公网IP
TCP关闭连接close socket发送RST导致client读取结果失败
TCP协议详解(上)
lvs做负载均衡出现的问题(访问非常慢)(只有两台机器,调度器兼做realserver时的转发风暴的问题)
Linux下的延迟确认机制
爬虫核心原理:一次 HTTP 请求到底是如何完成的?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服