课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
http协议是我们在学习网页设计和web前端编程开发技术的时候需要重点掌握的知识之一,而今天我们就一起来了解一下,http协议的发展过程以及优势都有哪些。
HTTP协议简史
HTTP的一个版本只能传输超文本标记语言(HTML)文件,因此我们称之为超文本传输协议。它真的很简单,可用的方法就是GET。它没有HTTP头文件或状态代码。如果出现问题,服务器可以使用带有错误描述的HTML文件进行响应。
1996年1.0版本出现了。与前一个版本相比,它进行了许多改进,其中重要的是状态代码、POST和header等附加方法。现在,我们可以使用Content-Type头来传输普通HTML之外的文件。
1997年发布的HTTP/1.1引入了一些其它的改进。除了添加像OPTIONS这样的方法外,它还引入了Keep-Alive头。它允许一个连接对多个HTTP请求保持打开状态。因为这点,连接不必在每次请求之后关闭,然后再重新打开。在HTTP/1.1中,我们通常一次只能有6个连接。例如,如果其中一个请求由于服务器上的某些复杂逻辑而卡住,那么它们中的每一个都可以一次处理一个请求,整个连接就会冻结并等待响应。这个问题称为前端阻塞。
实现Node.jsHTTP/2的好处
堆栈中有很多实现HTTP/2的方法。一种常见的方法可能是在web服务器上实现它,但是在本文中,我们在应用程序层中实现它,以便拓展Node.js的相关知识。因为浏览器不支持未加密的HTTP/2,这意味着我们需要通过HTTPS协议实现TLS连接。
解决某些复杂应用程序中的前端阻塞问题
即使使用HTTP/1.1进行6个并行连接也可能不够用,尤其是当我们遇到前端阻塞时。HTTP/2通过允许一个连接同时处理多个请求解决了这个问题,这是因为即使其中一个请求被卡住,其它的请求也可以继续。在上面的这个简单示例中,我们使用普通HTML进行响应。每当有人向我们的服务器发出请求时,流事件就会触发。
报头压缩
HTTP/2使用了一种新的报头压缩算法,我们称之为HPACK。一些参与定义HTTP/2协议的开发人员也在开发SPDY,它以前也用于压缩报头。不幸的是,后来人们发现它容易受到CRIME攻击。HPACK不仅使整个过程更加安全,而且在某些情况下速度更快。
使用服务端推送缓存数据
当我们实现HTTP/2时,上面所有的改进都是开箱即用的。这并不是它全部的能力。通过服务器推送,我们现在可以在客户机缓存中填充数据。我们甚至可以在浏览器请求之前完成。一个基本的使用场景是当用户请求index.html文件时的情况。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。