14 | HTTP有哪些优点?又有哪些缺点?
优点和缺点都和应用场景有关,在某些场景下的优点,在其他场景下则可能是缺点。
HTTP的核心优点有:灵活可扩展。
无状态可以理解为是双刃剑,无状态意味着实现简单,易于扩展。在集群环境里,所有WEB服务器都是一样的,通过简单堆硬件,加上7层LB,就可以达到提速的效果。无状态也意味着对于事务类请求,比如电商网站购物,涉及一系列有相互关联的请求,如果不记录状态,则难以处理。
文本协议是一个次要缺点,HTTP文本协议定义比较宽松,大小写,分隔符,没有严格定义,容易导致歧义,数据表达效率没有二进制高,如表示IPv4地址,二进制只需4个字节,而ASCII需要7-15个字节。
不安全是一个主要的缺点,需要引入TLS解决。
队头阻塞带来的性能问题是一个主要缺点,引入HTTP/2解决。
收发模式是双刃剑,收发模式对于实时通讯应用场景是缺点,可以引入HTTP/2解决。
应用广泛,环境成熟是优点。
认知HTTP的工作模式
典型的HTTP工作模式是点对点的,其中包括2个参与者,即客户端和服务器,尽管还可以引入其它参与者,如正向代理,反向代理,但其本质上还是点到点的,其它角色或扮演客户端,或服务器,或二者,充当中间人参与到HTTP的通讯中,HTTP协议本身仅通过特定头字段标记【Via】是否通过中间人转发,并不改变点到点通讯的本质。
进一步,在HT