防火墙有错,但404不是它的错

 

写出用户共鸣的文章固然好,但不要违背技术的基本逻辑。否则,就是误导。...



早上读到一篇的文章,也许是作者抓住了广大互联网用户的众怒,所以很火,若是放到微信公众号上,一定会是10万+的。



但是,作者显然为了迎合大众,不懂技术的胡说八道,把404也归因到防火墙的错。



404 NOT FOUND,对网民来说是非常熟悉的一串字符。

这是客户端在浏览网页时,服务器无法正常提供信息,或服务器无法响应,且原因不可知的返回页面。

因为在互联网诞生伊始,万维网的中央数据库就设置在404号房间内。

那时候,所有的请求都是人工手动完成的。

若数据库中无法找到请求者所需文件,他们就会给出这样一个反馈,room 404:file not found。

但是,在中国的长城防火墙筑起来后,404 NOT FOUND却被和一个人挂上了最直接的关系。

HTTP 404 或 Not Found 错误信息是HTTP的其中一种“标准回应信息”(HTTP状态码),此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因。

这个说明,客户端已经和服务器建立了网络连接,也就是是我们常说的TCP/IP的网络连接已经建立好了,而且服务器是好的,是正常工作的,能够和客户端做正常的交流,只是,服务器上没有客户端所请求的页面,也就是说,找不到所要的东西。然后,服务器很友好的告诉客户端。

既然,TCP/IP是正常工作的,那么,这个就不是防火墙在捣蛋了。防火墙用的是网络中间人攻击的方式来搅乱TCP连接的。

正常的TCP连接,是三次握手协议。就相当于你要和朋友对话,你先问候一句,”你好“。朋友回答一句,“你好。你在?”。然后,你再回答一句,“在”。然后,你们就可以正常对话交流了。



然后,当你们谈话要结束时,你会说一句,“再见”。对方会回答一句,“好的。再见”。你再说一句,“好的”。然后,你们的对话就正式结束了。



上面这些都是正常工作的情况,TCP引入了一个机制,任何时候,都可以通过发送“RST”,也就是Reset,即重置,来中断一个TCP连接。那么,防火墙正好是利用了这个机制来从中间捣乱TCP的正常连接,或是,让正常的TCP连接不能完成,从而达到阻挡访问的目的。防火墙,如果监测到它认为的不当内容,就会通过在TCP通讯中间插入多余的RST包来打断正常的通讯的。要么让TCP连接超时,也就是说正常的三次握手都不能完成,要么是网络连接突然被重置。



这样,就能理解为什么404不是防火墙的错了。因为防火墙连让一个正常的客户端到服务器的网络连接都不能建立,更如何能让服务器回到一个正常的请求的结果。这个结果告诉客户端这个请求的网页不存在,也就是404,Not Found。



现在,明白了吧。

写出用户共鸣的文章固然好,但不要违背技术的基本逻辑。否则,就是误导。


    关注 待字闺中


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册