javascript - 为什么PHP可以设置Cookie而不是本地存储

标签 javascript php html cookies local-storage

让我们回顾一下cookie 的时代,好吧,没那么远,因为它们已经过时了,但仍然相关。您可以使用 PHP 设置并读取它们;尽管它们是客户端技术,但您也可以使用 JavaScript,完全客户端。

展望 future ,HTML5本地存储,也是一种客户端技术,不能由PHP设置,只能依赖JavaScript。

这似乎是相反的做法(删除而不是添加)。当然,能够使用 PHP 设置这些数据是有帮助的,而且考虑到 Cookie 的作用,这也是可能的。

那么为什么不可能呢?没有设计一种方法来做到这一点的原因是什么?

更新如果我错了请纠正我,但 localStorage 是 replacement of Cookies ,那么这是否意味着您正在失去功能?

最佳答案

Lets rewind to the days of cookies...You can set them and read them with PHP; despite the fact they are a client side technology...

不,他们不是。 Cookie 主要是一种客户端/服务器技术。它们经过专门设计,允许服务器向客户端发送信息,然后客户端将信息发送回服务器。来自 the spec :

This document defines the HTTP Cookie and Set-Cookie header fields. These header fields can be used by HTTP servers to store state (called cookies) at HTTP user agents, letting the servers maintain a stateful session over the mostly stateless HTTP protocol.

尽管您可以通过客户端 JavaScript 访问它们,但这并不是它们创建的目的,也不是它们的唯一目的。

Web Storage (您所说的“HTML5本地存储”)仅在客户端。如果您想将该信息发送到服务器,您可以通过 ajax 或发送表单来完成。

为什么?这让我们陷入了猜测,但我们已经拥有 cookie,而在网络存储之前我们没有仅客户端的数据存储方式。仅客户端解决方案非常有用,尤其是因为我们可以存储大量信息,而无需将其不必要地添加到客户端向服务器发出的每个 HTTP 请求中,如果信息仅存在,这会浪费带宽。需要客户端。

关于javascript - 为什么PHP可以设置Cookie而不是本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21481036/

相关文章:

java - 登录网站而不使用网站首页?

javascript - mxGraph:移动边的句柄点时会触发哪个事件?

javascript - 如何将 Prop 传递给 Redux Form 中的 onSubmitSuccess 回调?

php - 基于标记值的谷歌地图颜色编码国家

javascript - 我怎样才能让一条消息位于 html 之上?

javascript - 在 textarea 中创建自动分页符(redactor)

javascript - 选择在没有属性 JS/XML 的情况下显示哪些 XML 数据

javascript - 如何使用 html2canvas 存储屏幕截图?

PHP/Curl/Wordpress 在不刷新页面的情况下发布数据,curl 不工作

javascript - ui 上的状态持久化