应用广泛、环境成熟因为过于简单,普及,因此应用很广泛 。因为 HTTP 协议本身不属于一种语言,它并不限定某种编程语言或者操作系统,所以天然具有跨语言、跨平台的优越性 。而且,因为本身的简单特性很容易实现,所以几乎所有的编程语言都有 HTTP 调用库和外围的开发测试工具 。
随着移动互联网的发展,HTTP 的触角已经延伸到了世界的每一个角落,从简单的 Web 页面到复杂的 JSON、XML 数据,从台式机上的浏览器到手机上的各种 APP、新闻、论坛、购物、手机游戏,你很难找到一个没有使用 HTTP 的地方 。
无状态无状态其实既是优点又是缺点 。因为服务器没有记忆能力,所以就不需要额外的资源来记录状态信息,不仅实现上会简单一些,而且还能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务 。
HTTP 的缺点无状态既然服务器没有记忆能力,它就无法支持需要连续多个步骤的事务操作 。每次都得问一遍身份信息,不仅麻烦,而且还增加了不必要的数据传输量 。由此出现了 Cookie 技术 。
明文HTTP 协议里还有一把优缺点一体的双刃剑,就是明文传输 。明文意思就是协议里的报文(准确地说是 header 部分)不使用二进制数据,而是用简单可阅读的文本形式 。
对比 TCP、UDP 这样的二进制协议,它的优点显而易见,不需要借助任何外部工具,用浏览器、Wireshark 或者 tcpdump 抓包后,直接用肉眼就可以很容易地查看或者修改,为我们的开发调试工作带来极大的便利 。
当然缺点也是显而易见的,就是不安全,可以被监听和被窥探 。因为无法判断通信双方的身份,不能判断报文是否被更改过 。
性能HTTP 的性能不算差,但不完全适应现在的互联网,还有很大的提升空间 。
参考资料:
https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Technical_overview
《极客时间》- 透视 HTTP 协议
https://developer.mozilla.org/en-US/docs/Web/HTTP
https://baike.baidu.com/item/WEB服务器/8390210?fr=aladdin
https://baike.baidu.com/item/内容分发网络/4034265
https://baike.baidu.com/item/HTML/97049?fr=aladdin
https://www.jianshu.com/p/3dd8f1879acb
《计算机网络-自顶向下方法》
《图解 HTTP》
HTTP协议的内容协商
https://www.w3school.com.cn/tags/att_form_accept_charset.asp
推荐阅读
- 碟仙恐怖吗 玩碟仙会有什么后果
- 腾讯算法:判断一个数是否在40亿个整数中?最后附java代码
- 世界上有没有食人花这种植物 世界上有没有食人花和食人
- 语音识别概论
- 宇宙最早的生物是什么 人类可能是宇宙中第一个文明
- 宇宙生命之谜是一篇介绍科学家探索宇宙生命的什么 科学家经过归纳发现,地球上之所以有生命存在
- 陕西村庄离奇消失真相 1987年陕西一个村庄离奇消失是真的
- 宇宙有没有开始?简述一下宇宙大爆炸理论 宇宙大爆炸理论认为
- 阿斯麦|19亿一台!ASML下一代革命性EUV光刻机:卖爆了
- 汽车电瓶什么牌子好呢