为什么需要 cookie 来保留状态信息?

Why need cookies to retain stateful information?

我正在阅读有关 cookie 的 wiki,他们说需要保留状态信息,例如购物车中的商品等。但是您为什么需要这样做?例如,为什么不将状态存储在数据库 table 中?

Cookie 有助于在客户端保存信息。

例如,在您给出的示例中,使用 cookie,您可以保存尚未登录或注册的人的购物车。

而如果您使用数据库来检索此类数据,则需要一种可靠的方法来识别当前访问者,并且除了要求登录之外您可能没有太多选择。

一般来说,您会希望在 cookie 中放入一些信息,以便让访问者的生活更轻松,但这并不是必须保留的信息(cookie 会过期,它们可以被清空,访问者可以使用不同的浏览器等)。

您可以将状态存储在数据库中,但您需要知道谁是该状态的所有者,因此您需要在请求之间识别客户端。

将 cookie 想象成浏览器的来电显示。这是它们的主要用途。当你第一次用你的浏览器访问我的网络服务器时,我说,'hey, let me set this caller id somewhere on your browser' 所以下次你打电话时,我会读它,然后我就知道是你了。一旦我知道是你,我就可以在我的数据库中查看更多信息,例如你的购物车商品。

另外我设置的来电显示不能被其他网站读取或修改,如果他们想识别你,他们需要自己设置。