优点

缺点
1.无状态双刃剑
好处是服务器不会去记忆Http的状态,所以不需要额外的资源来记录状态信息,这能减轻服务器的负担,把cpu和内存用于对外提供服务
坏处就是无状态的话,对完成有关联性的操作时会有麻烦,比如登录淘宝网,将商品加入购物车,下单,这一系列操作都要知道用户的身份才行,但服务器不知道这些请求是有关联的,每次都要问一遍身份信息。
对于无状态的问题,解决的方案有很多种,比较简单的是采用cookie技术
2.明文传输
传输过程中的信息是方便阅读的,可以直接f12在控制台上或wireshark抓包都可以直接肉眼查看,为我们调试工作带来了极大的便利性
3.不安全
通信使用明文(不加密),内容可能会被窃听
无法验证通信双方身份,因此可能遭遇伪装
无法证明报文的完整性,所以可能背篡改
http安全问题可以由https通过引入SSL/TLS解决
性能
HTTP协议是基于TCP/IP,并且使用了[请求,应答]模式,所以性能的关键就在于这两点
1.长连接
早期HTTP/1.0 性能上的一个很大问题就是每发起一个请求,都要新建一次TCP连接(三次握手),而且是串行请求,做了无谓的TCP连接建立和断开,增加了通信开销
所以HTTP/1.1提出了长连接的通信方式,也叫持久连接,这种方式的好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载
特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态
2.管道网络传输
使用长连接使管道网络传输成为了可能
即可在同一个TCP连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不用等其回来,就可以发起第二个请求出去,可以减少整体的响应时间
但是服务器还是按照顺序先回应A请求,完成后再回应B请求,要是前面的回应特别慢,后面就会有许多请求排队等着,这称为 [队头阻塞]
3.队头阻塞
[请求-应答] 的模式加剧了HTTP的性能问题
因为当顺序发送的请求序列中一个请求因为某种原因被阻塞时,在后面排队的所有请求也都被阻塞了,会导致客户端一直请求不到数据
