网站优化 - 使用cookie或使用我们的数据库?

时间:2012-01-05 09:02:35

标签: php optimization cookies

我已经在线阅读(根据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只是一个数字,我们从数据库中检索其余部分。您是否会将其归类为网站速度的“优化”更好的形式?

非常感谢!

1 个答案:

答案 0 :(得分:5)

毫无疑问,将数据存储在数据库中,只需将唯一保存的ID放入cookie中即可。

除了通过减少HTTP请求数据来加速页面,您可以在数据库中存储无限量的数据,而cookie只能存储大约4K的数据。

如果所有的数据都是ID,您还可以获得用户无法篡改cookie数据的额外好处。