序言
HTTP协议处于四层网络协议模型的应用层,是互联网世界的基础。在HTTP协议上,有衍生封装了很多rpc应用,例如说SOAP调用。
我们常常在学习到一定程度时,基础知识不够,导致学习稀里糊涂。在学习到HTTP服务器或者WEB容器时,听到HTTP长连接、Nginx反向代理、HTTPS等,由于欠缺基础,感觉什么都是新的,基础不够,影响掌握这些开源组件的速度。学习要从基础开始,因此掌握HTTP是必须的。
HTTP纵横观点
HTTP是“活”的
协议是怎么来的,是根据具体的场景,解决具体的问题触发产生的。HTTP并不是一个静止的协议,而是一个不断演化的协议,正式因为生命力强,所以才不断演化。如果一个协议若干年未变,说明这个协议应用范围有限,或者正在消亡。
http演化.png
- HTTP从一开始比较简单的原型,到各种优化,例如说长连接、cookie等优化,最终写入rfc,标志了HTTP被世界认可,真正广泛应用。这是HTTP/1
- 为了解决安全问题,在tcp和http层之间增加了一个中间层,SSL/TLS,解决加密解密的安全问题。这是HTTPS
- 为了解决HTTP/1的排队阻塞问题,以及安全等问题,google利用自身的巨大优势,将自身的方案提案为HTTP/2
- 还是google,提出并利用UDP作为传输层协议,这就是HTTP/3
正如生命力比较旺盛的语言一样,例如JAVA中增加函数式等,HTTP协议也是一种旺盛的网络协议,是“活”的。
HTTP协议特点
- HTTP是可扩展的。不同于SNMP等协议,HTTP的协议头除了公共约束,是可以扩展的,所以后面才产生若干优化。
- HTTP是可靠的,正如上面HTTP演化所述,HTTP/1、HTTPS、HTTP/2都是基于TCP的,而HTTP/3虽然是基于UDP,但是实际上是在UDP上层,把TCP的控制等专门提取出一个协议,然后在这个协议上开发HTTP/3,所以说HTTP/3也是可靠的。
- HTTP可以传输任意内容,如上所述,可以封装其它协议,如果SOAP,这是SOA架构的基础。
- HTTP是无状态的,每个请求都毫无关联,为了实现会话等,所以有cookie。
小结
如上,我们从历史观和特点初步认知了HTTP,接着再用一系列小短文,对演化中的各个角色一一介绍。
网友评论