编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

太多人把Cookie当缓存用,我无语了

wxchong 2024-12-15 17:21:09 开源技术 42 ℃ 0 评论

我做软件开发很多年了,遇到过很多高手程序员,他们通常都是对技术有好奇心,爱钻研,喜欢和别人交流的人。但这种程序员的比例太少了!

有很多程序员的基础知识都掌握得不够牢。概念基本都知道,但是不能较真儿,一较真儿就说不清楚了。

今天我来说一个很多人都会错的概念,那就是Cookie。面试的时候问这个问题,基本上80-90%的人都会说Cookie是客户端的缓存。实际工作中,也有很多人真的把Cookie当作缓存来用。网页界面上需要显示一些内容,又不想重复去服务器端获取,那就先放到Cookie里,既方便又快捷。

那么Cookie到底是不是缓存呢?我们来看一下Cookie的定义。

Cookie 其实也叫 HTTP cookie,它是客户端用来存储会话ID(sessionID)的一种机制。比如我们打开一个网页的时候,浏览器就与服务端建立了一次会话。这里需要注意,不管用户有没有登录,都是有建立会话的。在这次会话当中,浏览器向服务器请求数据,都会在请求头里自动带上这个会话ID。浏览器关闭之后,这个Cookie还存在硬盘上,下次打开的时候还可以继续使用。

看完上面的说明我们知道了,Cookie主要是用来解决HTTP无状态这个问题的,而且Cookie里面的内容会随着HTTP请求头自动发送到服务器上。

那么,什么情况下需要把数据存到Cookie里,什么情况下不应该把存到Cookie里了,使用Cookie有哪些注意事项呢。我总结了几条常用的经验分享给大家。

1. 需要在HTTP请求里自动发送给服务器的数据,可以放到Cookie里。

2. 不需要发给服务器的数组,不应该放到Cookie里。这一点是最容易被大家忽略的,在工作中尤其要注意。

3. Cookie存储在用户的硬盘上,没那么安全,所以需要保密的数据不应该放到Cookie里。我曾经见过有人把用户名和密码存到Cookie里的。

4. Cookie有容量限制,要注意不能放太多东西。

5. 尽量不要让前端js写Cookie,尽量在后端写。

了解了上面这些内容,大家应该对如何使用Cookie有了一个基本的认识了。关于Cookie更底层的理论知识。大家可以到评论区留言探讨。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表