我在网上读到(关于Google自己的站点优化技术的建议),cookie的使用应该保持在最低限度-cookie越少(他们拥有的内容越少)越好,因为对该域下的页面的每个HTTP请求也会随着该请求一起传输cookie内容。
我们的客户要求允许访问产品列表页面上的“保存搜索”。例如,对于鞋子,我可以过滤“黑鞋子”并保存我的搜索结果。然后我可以将黑色的鞋子过滤成“皮革”,这样我就可以得到“黑色皮鞋”的过滤结果,我也应该能够保存这个搜索结果。因此,保存的搜索项包括3个属性:搜索名(由访问者输入)、要保存的当前URL以及关于该页面的额外的进一步描述性信息(取自该页面)。
因为访问者可以存储无限的搜索,所以我计划使用一个数组并序列化/ base64_encode它,这样它就变成了一个字符串,当它需要被检索/显示时,我可以解码它。
如果我将其存储在cookie中,而访问者保存了5次搜索,那么cookie中就有大量的文本。您将如何构建它?目前我可以看到两个选项:
1)坚持上面的方法,只使用cookie。为此,您将: a)执行上述的serialize/base64_encode?或者b)你会将多维数组“内爆”成一个字符串吗?
或
2)您是否会将所有这些信息存储在数据库中,例如将上面序列化的字符串存储在数据库中,然后为该客户分配一个唯一的ID (来自数据库),并将该ID存储在cookie中。这样,cookie只是一个数字,我们从数据库中检索其余部分。你会认为这是一种更好的网站速度“优化”形式吗?
非常感谢!
发布于 2012-01-05 17:07:35
毫无疑问,将数据存储在数据库中,并将唯一保存的ID放入cookie中。
除了通过减少HTTP请求数据来加快页面速度之外,您还可以在数据库中存储无限数量的数据,而cookie只能存储大约4K的数据。
您还将获得额外的好处,即如果只有一个ID,则用户无法篡改cookie数据。
https://stackoverflow.com/questions/8739887
复制相似问题