HTTP Is Not Simple
9 months ago
- #Web Development
- #Protocols
- #HTTP
- HTTP并非简单的协议,尽管存在普遍的误解。
- HTTP/1可能因可读文本和基础用例显得简单,但其底层机制非常复杂。
- HTTP/1.1引入了如管线化和100状态码等特性,这些功能鲜少使用却增加了实现复杂度。
- HTTP标头可任意长度、使用不同换行符,甚至可折叠或合并,这些规则加剧了复杂性。
- 判断HTTP/1消息体结束并非易事,需处理多种方法:Content-Length、分块编码或Connection: close。
- HTTP中的数字解析因格式多样性和整数溢出等问题,既低效又容易出错。
- HTTP/1.1规范已从初版18,615字暴增至最新版95,740余字,体量显著膨胀。
- 现代HTTP实现必须支持cookie和认证等额外功能,这些都不属于核心协议规范。
- HTTP方法和标头缺乏统一实现,导致互操作性问题频发。
- 浏览器实现常优先考虑用户体验而非严格遵循协议,这间接影响了HTTP行为。
- 尽管复杂,HTTP/1仍在小型应用和物联网领域广泛使用,因其高效且CPU占用低。
- 未来HTTP版本预计将持续增加复杂度,延续协议演进的趋势。