我收集的一些最佳实践,
为组件使用Cookie免费域
标签:cookie
当浏览器发出请求静态图像并将cookie发送到请求时,服务器对这些cookie没有任何用处.所以他们只是创造网络流量没有好的理由.您应该确保使用无Cookie请求请求静态组件.创建一个子域并托管所有静态组件.
如果您的域名是www.example.org,您可以在static.example.org上托管静态组件.但是,如果您已经在顶级域名example.org上设置了Cookie,而不是www.example.org,那么对static.example.org的所有请求都将包含这些cookie.在这种情况下,您可以购买一个全新的域名,在那里托管静态组件,并保持此域免费. Yahoo!使用yimg.com,YouTube使用ytimg.com,Amazon使用images-amazon.com等.
在无Cookie域中托管静态组件的另一个好处是某些代理可能拒绝缓存使用Cookie请求的组件.在相关的说明中,如果您想知道您是否应该为您的主页使用example.org或www.example.org,请考虑cookie的影响.省略www让您别无选择,只能将Cookie写入* .example.org,因此出于性能考虑,最好使用www子域并将该cookie写入该子域.
实施限制
实际的用户代理实现对可以存储的Cookie的数量和大小有限制.一般来说,用户代理的cookie支持应该没有固定的限制.他们应该努力存储尽可能多的常用Cookie.此外,一般用户代理应该单独提供以下每个最小功能,尽管不一定同时:
* at least 300 cookies * at least 4096 bytes per cookie (as measured by the characters that comprise the cookie non-terminal in the Syntax description of the Set-Cookie2 header,and as received in the Set-Cookie2 header) * at least 20 cookies per unique host or domain name
为特定目的而创建的用户代理或容量有限的设备应至少提供20个4096个字节的cookie,以确保用户可以与基于会话的源服务器进行交互.
Set-Cookie2响应头中的信息必须完整保留.如果由于某种原因存在cookie的空间不足,则必须将其丢弃,而不会被截断.应用程序应尽可能使用尽可能少的Cookie,并且应该优先处理Cookie的丢失.