为什么Cookie可以通过PHP而不是本地存储来设置

时间:2014-01-31 13:17:47

标签: javascript php html5 cookies local-storage

让我们回到天的Cookie ,好吧不是因为它们已经老了但仍然相关。你可以设置它们并用PHP读取它们;尽管它们是客户端技术,但您也可以使用JavaScript,完全是客户端。

展望未来, HTML5本地存储,也是客户端技术无法通过PHP设置,您完全依赖于JavaScript。

它接缝好像这是相反的做法(带走不加)。肯定能够用PHP设置这些数据是有帮助的,并且考虑到Cookies可能会以某种方式。

那为什么不可能呢?没有设计出这样做的理由是什么原因?

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

2 个答案:

答案 0 :(得分:3)

  

让我们回到cookie的日子......你可以设置它们并用PHP阅读它们;尽管他们是客户端技术......

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

  

本文档定义了HTTP Cookie和Set-Cookie标头字段。   HTTP服务器可以使用这些头字段来存储状态   HTTP用户代理(称为cookie),让服务器维护   主要是无状态HTTP协议的有状态会话。

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

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

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

答案 1 :(得分:1)

  

cookies ...可以设置它们并用PHP读取它们;尽管他们是客户端技术

它们不是客户端技术。它们是HTTP技术。它们嵌入在客户端和服务器之间使用的通信协议中。


本地存储是会话和数据库的纯客户端替代方案,已在服务器端提供。

它的目的是存储对于cookie来说太大的数据。如果你可以在服务器上编辑它,那么必须在每个请求中发送内容,这将是非常昂贵的。它还会将本地存储转换为“没有大小限制的Cookie”。