首页 > 业内资讯 > 全栈工程师眼中的 HTTP

全栈工程师眼中的 HTTP

时间:2016-01-20 | 来源:developerWorks | 阅读:127

话题: developerWorks


就这样,攻击者通过海量的请求,让目标服务器瘫痪,无法响应正常的用户请求,以此达到攻击的效果。


对于这样的攻击,几乎没有什么特别好的防护方法。除了增加带宽和提高服务器能同时接纳的客户数,另一种方法就是让首页静态化。DDoS攻击者喜欢攻击的页面一般是会对数据库进行写操作的页面,这样的页面无法静态化,服务器更容易宕机。DDoS攻击者一般不会攻击静态化的页面或者图片,因为静态资源对服务器压力小,而且能够部署在CDN上。

这里介绍的只是最简单的TCP/IP攻击,而DDoS是一个概称,具体来说,有各种攻击方式,比如CC攻击、SYN攻击、NTP攻击、TCP攻击和DNS攻击等。


BigPipe

前端跟后端在HTTP上也能有交集,BigPipe就是一个例子。


现有的HTTP数据请求流程是:客户端建立连接,服务器同意连接,客户端发起请求,服务器返回数据,客户端接受并处理数据。这个处理流程有两个问题。


现有的阻塞模型,黄色代表服务器生成页面,白色代表网络传输,紫色代表浏览器渲染页面。


第一,HTTP协议的底层是TCP/IP,而TCP/IP规定3次握手才建立一次连接。每一个新增的请求都要重新建立TCP/IP连接,从而消耗服务器的资源,并且浪费连接时间。对于几种不同的服务器程序(Apache、Nginx和Node.js等),所消耗的内存和CPU资源也不太一样,但是新的连接无法避免,没有从本质上解决问题。


第二个问题是,在现有的阻塞模型中,服务器计算生成页面需要时间。等服务器完全生成好整个页面,才开始网络传输,网络传输也需要时间。整个页面都完全传输到浏览器中之后,在浏览器中最后渲染还是需要时间。三者是阻塞式的,每一个环节都在等上一个环节100%完成才开始。页面作为一个整体,需要完整地经历3个阶段才能出现在浏览器中,效率很低。


BigPipe是Facebook公司科学家Changhao Jiang发明的一种非阻塞式模型,这种模型能完美解决上面的两个问题。


通俗来解释,BigPipe首先把HTML页面分为很多部分,然后在服务器和浏览器之间建立一条管道(BigPipe就是“大管道”的意思),HTML的不同部分可以源源不断地从服务器传输到浏览器。BigPipe首先输送的内容是框架性HTML结构,这个框架结构可能会定义每个Pagelet模块的位置和宽高,但是这些pagelet都是空的,就像只有钢筋混泥土骨架的毛坯房。


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网