由于Cookie
的实现机制,一旦服务器端向客户端发送了设置Cookie
的意图,除非Cookie
过期,否则客户端每次请求都会发送这些Cookie
到服务器端,一旦设置的Cookie
过多,会将导致报头较大。大多数的Cookie
并不需要每次都用上,因为这会造成宽带的部分浪费。
-
减少
Cookie
的大小
如果在域名的根节点设置
Cookie
,几乎所有子路径下的请求都会带上这些Cookie
,这些Cookie
在某些情况下是有用的,但在有些情况下是完全无用的,但是一旦有Cookie
设置到相同域名下,他的请求就会带上Cookie
。
-
为静态组件使用不同的域名
多个域名优点:
- 为不需要
Cookie
的组件换个域名可以实现减少无效Cookie
的传输。所以很多网站的静态文件会有特别的域名,使得业务相关的Cookie
不再影响静态资源。- 使用不同的域名不但可以减少
Cookie
的发送,还可以突破浏览器下载线程数量的限制,因为域名不同,下载线程限制数量翻倍。
多个域名缺点:
额外的域名还是有一定的缺点,那就是将域名转换为IP需要进行DNS查询,多一个域名就多一次DNS查询。页面的性能规则上就有一条:减少dns查询,但是好在大多数浏览器都活进行DNS缓存,以削弱这个副作用的影响。
-
Cookie
的弊端
Cookie
除了通过后端添加协议头的字段设置外,前端浏览器中也可以通过JS进行修改,修改过后,后续的请求中就会携带上修改过后的值,目前广告和在线统计领域是最为依赖Cookie
的,通过签入第三方的广告或者统计脚本,将Cookie
和当前页绑定,这样可以标识用户,得到用户的浏览行为,广告商就可以定向投放了。 Cookie
只能做到标识,而不能做到任何具有破坏性的事情,但是Cookie
并非完美。
除了前面的体积过大的问题,最严重的的问题就是
Cookie
可以在前后端进行修改,因此数据就容易被篡改和伪造。所以Cookie
对于敏感数据的保护是无效的。
总结
日常性能提升看上去,提升意义不大,但是性能细节方面影响诸多,聚小成多。整体性能提升不可小觑。
网友评论