你知道HTTP的特性有哪些吗?
一、HTTP(1.1)的优点
- 简单:HTTP的基本格式是header+body,头部信息是key-value形式,易于理解
- 灵活和易于扩展:HTTP协议里的各类请求方法、URI/URL、状态码、头字段等各个组成要求都没有被固定死,都允许开发人员自定义和扩充,同时HTTP允许下层随意变化
- 应用广泛和跨平台
二、HTTP(1.1)的缺点
- 无状态
- 好处:服务器不用消耗额外的资源去记忆HTTP的状态,这样可以减轻服务器的负担
- 坏处:服务器完成有关联性的操作比较麻烦
- 明文传输
- 好处:方便阅读,为调试工作带来极大便利
- 坏处:信息轻易暴露
- 不安全
- 使用明文,内容可能被窃听
- 不验证通信方的身份,有可能被伪装
- 无法证明报文的完整性,有可能已被篡改
三、HTTP(1.1)的性能
长连接
- HTTP(1.0)每次发起一个请求都要建立一次TCP连接(三次握手),而且是串行请求,增大了通信开销
- HTTP(1.1)则采用了长连接(只要任意一端没有提出断开连接,则保持TCP连接状态)的通信方式,减少了TCP的连接的重复建立与断开造成的额外开销,减轻了服务器的负担
管道网络传输
同一个TCP连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不用等其回来,就可以发送第二个请求出去,可以减少整体的响应时间,但是服务器还是按照顺序,先回应A请求,再回应B。
对头堵塞
当顺序发送的请求序列中的一个请求因为某种原因堵塞时,在后面排队的所有请求也一同被阻塞了,会招致客户端一直请求不到数据。
四、总结
TTP(1.1)的性能一般般,后面的HTTP2和HTTP3都是在优化HTTP的性能。