12. 总结HTTP特点
灵活可扩展
这可以说是 HTTP 最重要的特点,也是HTTP能大行其道并碾压其他协议称霸于世的根本原因!它只规定了报文的基本格式,用空格分隔单词,用换行分隔字段,「header+body」等基本语义
但在语法层面并不做限制,它并没有强制规定header里应该传什么,也没有限制它底层应该用什么传输,这也为HTTPS添加SSL/TLS层来加密传输,HTTP2使用帧,流来进行多路复用,HTTP3使用UDP彻底解决解决队头阻塞问题提供了可能!后续如果又出现了牛逼的协议,底层也随时可以替换
可靠传���
不管底层是 TCP 还是QUIC(底层使用UDP),它们的传输都是可靠的,都能保证应用层请求响应的可靠传输,这一点很重要,不然传输过程中缺胳膊少腿,应用层就无法解析了。
应用层协议
HTTP 是一个协议,很多人把 HTTP 和 TCP 混在了一起
- TCP 相当于高速公路,为我们提供了可靠的传输通道
- HTTP 规定货物的表现形式(header + 空行+ body)
货物是否可从中间站运回(缓存机制)高速公路是否应该关闭(连接控制),至于货物如何可靠传输到目的地,那是 TCP 的事,与 HTTP 无关
请求应答模式
HTTP 需要请求方发起请示,然后应答方对此作出响应,应答方不会无缘无故地发响应给请求方
另外请求和应答方的角色是可以互换的
无状态
HTTP 的每个请求-应答都是无关的,即每次的收发报文都是完全独立,没有任何联系的,服务器收到每个请求响应后,不会记录这个请求的任何信息
Session 和 Cookie
- Session 可以认为是 Server 用来追踪每个用户行为的一个会话
- server 会给每个用户分配一个这个 Session 的 Cookie
- 通过 Cookie 这个头字段返回给 client
- 之后 client 每次请求都会在 Cookie 里带上这个sessionId,server 拿到 sessionId 之后就知道是哪个用户发起的了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的生活小站!