作者:dyh81216462 | 来源:互联网 | 2024-12-21 17:19
根据Google的技术建议,在线资源指出,为了优化网站性能,应尽量减少COOKIE的使用。每个HTTP请求都会传输COOKIE内容,因此越少越好。这有助于减少每次页面加载时的数据传输量,从而提升整体速度。
我们有一个客户需求,允许用户在产品列表页面上保存搜索结果。例如,用户可以过滤“黑鞋”并保存该搜索。之后,他们还可以进一步筛选为“黑色皮鞋”,并保存新的搜索结果。每个保存的搜索项包括三个属性:搜索名称(由用户输入)、当前URL以及描述性信息(从页面获取)。
由于用户可以无限次地保存搜索,我考虑将这些数据序列化后编码为字符串,并存储在一个数组中。然而,如果使用COOKIE存储多个搜索结果,会导致COOKIE体积过大,影响性能。
针对这种情况,我有两个主要方案:
- 仅使用COOKIE进行存储:
- a) 将数据序列化并进行Base64编码。
- b) 将多维数组转换为字符串。
- 使用数据库存储:
- 将序列化的字符串存入数据库,并为每个用户分配一个唯一的ID。然后,仅在COOKIE中存储这个ID。这样,COOKIE只包含一个数字,而实际数据从数据库中检索。这种方法不仅减少了HTTP请求中的数据量,还提高了安全性,因为用户无法篡改存储在服务器端的数据。
综合来看,将数据存储在数据库中,并通过COOKIE存储唯一ID是更优的选择。这不仅能显著减少HTTP请求的数据量,提高页面加载速度,还能确保数据的安全性和完整性。此外,数据库能够存储大量数据,不受COOKIE 4K大小限制的影响。