购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1.4 HTTP协议

浏览器与服务器之间数据的传输离不开通信协议,而B/S架构的核心是HTTP协议。HTTP是一种无状态的请求/响应协议,这意味着每个请求都是独立的,服务器不会“记住”之前的请求。HTTP有多种请求方法,如GET、POST、PUT、DELETE等,分别支持不同的操作。HTTP响应包括状态代码,如200 OK、404 Not Found等,用于表示请求的结果。

理解HTTP的无状态特性的关键点如下。

独立的请求:每次HTTP请求都是完整的。从一个请求开始,服务器处理,然后返回响应,这个请求就结束了。服务器不会(基于HTTP协议本身)“记住”这个请求。

无法记忆:假设你在一个电商网站上登录并添加了一个商品到购物车,但是当你尝试去结账时,如果HTTP是完全无状态的,则服务器会“忘记”你是谁以及你加入购物车的商品是什么。

设计成无状态的原因:HTTP的无状态性有助于简化服务器的设计,因为服务器不需要保存与每个客户端的会话相关的信息。这也使得Web服务可以更轻松地扩展,因为新的请求可以由任何可用的服务器处理,而不必担心丢失与先前请求的状态相关的信息。尽管HTTP本身是无状态的,但Web应用往往需要维护管理状态(例如,跟踪用户是否登录,用户的购物车内容等)。为了解决这个问题,Web开发者使用了一些技巧和工具,如Cookies、URL参数、隐藏的表单字段和服务器端的session存储。

Cookies:当用户首次登录一个网站时,服务器可能会发送一个Cookie给浏览器。此后,每次发出请求,浏览器都会自动携带这个Cookie,这样服务器就可以“识别”用户了。

Session:服务器可以使用由Cookie或其他机制提供的ID来存储有关用户的状态信息。这些信息保存在服务器上,每次请求时,服务器可以使用ID来查找和使用该信息。

在后续章节中会详细介绍RESTful API设计,无状态是其核心原则之一。每个请求应该包含所有必要的信息供服务器处理。这确保了服务器可以自由地处理任何请求,而不需要考虑之前的请求。 TAeA5no6S0GTqD5jA9T4fgphQpQ29r++P5ufWHq2hO2F+bG3VS5R7Qcub3sH1uPH

点击中间区域
呼出菜单
上一章
目录
下一章
×