Http协议与REST:无状态与有状态架构的探讨

5星 · 超过95%的资源 需积分: 48 38 下载量 175 浏览量 更新于2024-09-15 收藏 76KB PPTX 举报
"浅谈Http协议和Rest"讲座由蒋彪在2012年8月3日撰写,探讨了HTTP协议的核心要素及其在Web开发中的广泛应用。HTTP(Hypertext Transfer Protocol)协议是互联网的基础,它通过80端口实现了无与伦比的穿透性,使得Web项目得以在全球范围内广泛传播,即使在大多数防火墙存在的情况下,由于其简单明了的设计,一次请求(头部定义请求标准,主体包含数据)和一次响应即完成通信。 早期的HTTP 1.0版本是无状态的,使用TCP短连接,意味着每次请求都会重新建立连接,这在处理用户登录和购物这类需要保持会话状态的场景时显得不便。为了解决这个问题,出现了cookie和session机制。cookie用于在客户端存储临时状态数据,如jsessionid,而服务器端则管理会话信息,但这会导致系统扩展性和复杂性问题,因为会话存储在服务器上不易于横向扩展。 为了解决状态管理的问题,REST(Representational State Transfer)架构应运而生。RESTful Web Services以资源为中心,强调无状态、动词化(使用GET、POST、PUT、DELETE等动词来表示操作),以及数据交换的标准化,如JSON或XML。例如,URL结构如`https://api.xxxx.xxxx.com/apl/validate_package`展示了RESTful API的典型设计,用户可以轻松理解和操作。 尽管如此,REST通常在开发平台中使用较多,而前端展示仍可能保留MVC(Model-View-Controller)架构,因为实现完全无状态是非常复杂的。1999年,HTTP 1.1引入了长连接支持,允许复用连接,商业框架如Comet开始提供支持。然而,这种技术的一个主要问题是它可能导致服务器资源消耗过大,特别是对于频繁的小数据交互,因为长连接可能导致不必要的资源占用。 总结来说,HTTP协议和REST架构在Web开发中扮演着关键角色,它们既解决了传统HTTP协议的局限,又提供了高效、简洁的API设计原则,但同时也需要权衡不同的技术选择,以适应实际应用场景的需求。