Cookie以及优化

cookie是浏览器的一种本地存储方式,一般用来帮助客户端和服务端通信的,常用来进行身体校验,结合服务端的session使用。
场景简述如下:
在登录页面,用户登录了,
此时服务端会生成一个session,session中有对于用户的信息(如用户名、密码等)
然后会有一个sessionid(相当于服务端的session对应的key)
然后服务端在登录页面中写入cookie,值就是jsessionid=xxx
然后浏览器本地就有这个cookie了,以后访问同域名下的页面时,自动带上cookie,自动校验,在有效时间内无需二次登录。

上述就是cookie的常用场景简述。
一般来说,cookie是不允许存放敏感信息的,因为非常不安全,如果一定要强行存储,首先,一定要在cookie中设置httponly(这样就无法通过js操作了),另外可以考虑rsa等非对称加密。
由于在同域名的资源请求时,浏览器会默认带上本地的cookie,针对这种情况,在某些场景下是需要优化的。

譬如以下场景:

客户端在域名A下有cookie(这个可以是登陆时由服务端写入的)

然后在域名A下有一个页面,页面中有很多依赖的静态资源(都是域名A的,譬如有20个静态资源)

此时就有一个问题,页面加载,请求这些静态资源时,浏览器会默认带上cookie

也就是说,这20个静态资源的http请求,每一个都得带上cookie,而实际上静态资源并不需要cookie验证

此时就造成了较为严重的浪费,而且也降低了访问速度(因为内容更多了)
当然了,针对这种场景,是有优化方案的(多域名拆分)。具体做法就是:

  • 将静态资源分组,分别放到不同的域名下(如static.base.com)

  • 而page.base.com(页面所在域名)下请求时,是不会带上static.base.com域名的cookie的,所以就避免了浪费。

说到了多域名拆分,这里再提一个问题,那就是:

  • 在移动端,如果请求的域名数过多,会降低请求速度(因为域名整套解析流程是很耗费时间的,而且移动端一般带宽都比不上pc)

  • 此时就需要用到一种优化方案:dns-prefetch(让浏览器空闲时提前解析dns域名,不过也请合理使用,勿滥用)

关于cookie的交互,可以看下图总结


http_cookie_session.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 勤虫飞舞处,栀子素颜开。 蜂盼农人喜,争相采蜜来。
    柯南一梦Konami阅读 283评论 0 2
  • 文/落拓高醺 一直以来,方位感极差的我对地理学可谓从不算扎实。近几日,读了一篇很有情调的小众文章,叫 《苇子黄了,...
    落拓高醺阅读 676评论 0 2
  • 这个国庆,是我上班以来的第一个长假,虽然没有买到直达的卧铺,我还是决定,坐十二三个小时的硬座回家。 上次回家还是六...
    HerryLiu阅读 225评论 0 0
  • 恭喜恭喜! 一大早,就被这好事刷了屏 当然 广大粉丝和网友不只是送祝福,更多的是感动 2018年2月1日 张杰微吧...
    梓钰频道阅读 339评论 0 1

友情链接更多精彩内容