我已经在线阅读(根据Google自己的网站优化技术建议)理想情况下使用Cookie应该保持在最低限度 - Cookie越少(内容越少)越好,因为每个HTTP请求都是该域名下的页面也会将cookie内容与该请求一起传输。
我们的客户要求允许访问产品列表页面上的“保存搜索”。例如,对于鞋子,我可以过滤“黑鞋”并保存我的搜索。然后,我可以将黑色鞋子过滤成“皮革”,这样我就可以得到“黑色皮鞋”的过滤结果,而且我应该能够保存那个搜索。 因此,保存的搜索项包括3个属性:搜索名称(由访问者输入),要保存的当前URL以及有关该页面的更多进一步描述性信息(从页面中获取)。
由于访问者可以存储无限次搜索,我计划使用数组并对其进行序列化/ base64_encode,使其成为一个字符串,我可以在需要检索/显示时解码。
如果我将它存储在一个cookie中,并且访问者保存了5次搜索,那么这就是cookie中的大量文本。你会如何建立这个?目前我可以看到两个选项:
1)坚持上述方法,仅使用cookie。为此你会: a)执行上面的serialize / base64_encode? 要么 b)你会将多维数组“内爆”到一个字符串吗?
OR
2)您是否将所有这些信息存储在数据库中,比如将上面的序列化字符串存储在数据库中,然后为该客户分配一个唯一的ID(来自数据库)并将该ID存储在cookie中。这样,cookie只是一个数字,我们从数据库中检索其余部分。您是否会将其归类为网站速度的“优化”更好的形式?
非常感谢!
答案 0 :(得分:5)
毫无疑问,将数据存储在数据库中,只需将唯一保存的ID放入cookie中即可。
除了通过减少HTTP请求数据来加速页面,您可以在数据库中存储无限量的数据,而cookie只能存储大约4K的数据。
如果所有的数据都是ID,您还可以获得用户无法篡改cookie数据的额外好处。