HTTP框架修炼之道|青训营笔记

64 阅读3分钟

本次的课程背景是业务逻辑、后端路由和请求解析方面,数据库的信息先后通过这三层形成HTTP请求。

超文本传输协议(Hyper Text [Transfer Protocol]HTTP)是一个简单的请求-响应协议,它通常运行在[TCP]之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以[ASCII]形式给出;而 消息内容则具有一个类似[MIME]的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

在初步了解这个协议之后,我们需要考虑关于协议作用的两个方面:1.协议可以为数据确定明确的边界。2.协议能确定什么样的消息以及消息的类型。

HTTP是基于[客户/服务器]模式,且面向连接的。典型的HTTP[事务处理]有如下的过程:  (1)客户与服务器建立连接; (2)客户向服务器提出请求; (3)服务器接受请求,并根据请求返回相应的文件作为应答; (4)客户与服务器关闭连接。 客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接主要考虑到WWW服务器面向的是Internet中成千上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。

以上是事务处理的过程,接下来看看更多关于HTTP的资料,让我们更详细地了解这个协议:

HTTP是一种[无状态协议],即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的[响应速度]。HTTP是一种面向对象的协议。允许传送任意类型的[数据对象],它通过[数据类型]和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个[HTML]文档中定义了一个超[文本链]后,浏览器将通过[TCP/IP协议]与指定的服务器建立连接。HTTP支持[持久连接],在HTTP / 0.9和1.0中,连接在单个请求/响应对之后关闭。在HTTP / 1.1中,引入了保持活动机制,其中连接可以重用于多个请求。这样的[持久性]连接可以明显减少请求延迟,因为在发送第一个请求之后,客户端不需要重新协商[TCP]3-Way-Handshake连接。另一个积极的副作用是,通常,由于TCP的缓慢启动机制,连接随着时间的推移而变得更快。

在本节课的最后,我了解了HTTP的发展历程,HTTP经历了HTTP1、HTTP2、 QUIC三个版本的迭代,在这个过程中很多缺点都被消除或减弱了,HTTP协议变得越来越好了。