HTTP的优点点和缺点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP的优点点和缺点相关的知识,希望对你有一定的参考价值。

参考技术A 上文中我们介绍了HTTP的特点,根据介绍的特点我们分析下优劣和好坏;

当然上述所说的特点是基于HTTP/1.1版本来说的;

这是HTTP中最为突出的优点,【简单、灵活、易于扩展】;

【灵活】和【易于扩展】这两个特点之间是相辅相成的,因为灵活让HTTP协议变得易于扩展;

反之,因为易于扩展让HTTP协议变得更加灵活;

该特点体现在,HTTP协议中的请求方法、状态码、头字段等信息没有被写死,我们开发人员可以任意定制、扩充或者解释;

同时这个特点有点像设计模式中的【策略模式】,就是HTTP的上层协议的语义没变,具体的下层协议没有限制,可以使用TCP,还可以使用SSL/TLS,甚至是UDP的QUIC;

这也是HTTP协议里另一大优点【应用广泛】;

从简单Web页面到复杂的JSON数据;从PC上的浏览器到手机上的APP,这些地方都在使用HTTP;

从应用领域到开发领域HTTP协议也都得到了广泛的支持;HTTP协议不局限于某一种开发语言或者操作系统,使其也具有了【跨语言、跨平台】的特性;

这个特性对HTTP来说既是优点也是缺点,是一把【双刃剑】

我们上文介绍过,无状态就好比是服务器没有记忆能力,就不需要存储额外的状态信息。这样能减轻服务器的负担,同时能把更多的资源用于对外的服务上;

无状态就意味着服务器都是相同的,可以容易组层集群,通过负载均衡把请求转发到任意一台服务器上,不会因为状态不一致导致处理出错;

针对【无状态】就不会记录客户端的信息,需要身份校验的连续操作,服务器是不知道这些请求的关联,每次都得问一遍身份信息;

HTTP协议理想态是既能【无状态】又能【有状态】不过这样的好事在Cookie技术上得到实现了;

明文传输也是HTTP协议中一把双刃剑;

明文准确的说:协议里传输的报文【header】部分不使用二进制数据,使用的是简单客阅读的文本形式;

HTTP的明文传输,我们可以用浏览器、Charles、Wireshark这样的工具抓包后,可以肉眼容易地查看或者修改,我们开发工作带来了很大的便利;

HTTP报文信息都暴露光天化日之下,在漫长的传输链路上毫无隐私可言;

明文传输只是【机密】方面的一个缺点,在【身份认证】和【完整性校验】这方面HTTP有所欠缺;

HTTPS的出现就是为了解决这个不安全问题;

简单来说就是怎么证明是你,在虚拟网络中HTTP没有提供有效的手段来确认通信双方的真实身份;

不支持该特性,数据在传输过程中很容易被篡改而无法验证真伪;

HTTP的性能 不算差也不够好;

HTTP协议是基于TCP/IP协议的,并且使用了【请求-应答】的通信模式

TCP协议的性能是不差的,能够应付大多数场景;

江湖不再是以前的江湖,现在互联网是【高并发】,不能保证稳定的连接质量,在TCP基础上HTTP协议有时候会表现的不够好;

同时【请求-应答】模式加剧了HTTP性能问题,会出现【对头阻塞】,当顺序发送的请求序列中有一个请求因为某种原因阻塞时,其他在排队的就一直被阻塞了;

不够该问题在HTTP/2和HTTP/3中都得以解决了;后面再说;

以上是关于HTTP的优点点和缺点的主要内容,如果未能解决你的问题,请参考以下文章

004.redis 的 RDB 和 AOF 两种持久化机制的优劣势对比

优点和缺点:Jetbrains IntelliJ / Sublime Text [关闭]

运维丨mysql高级学习之索引的优劣势及规则使用

ELK在日志分析行业的优缺点是啥?

ELK在日志分析行业的优缺点是啥?

索引使用原则