你有没有过这样的经历?早上在咖啡店登录购物网站,挑了几件商品加进购物车,临时有事关掉浏览器,晚上回来再打开网站,购物车里的东西居然还在。这可不是魔法,而是HTTP协议中的Cookie在默默工作。
什么是Cookie?
简单来说,Cookie是服务器发给浏览器的一小段数据,浏览器会把它存起来。下次你再访问同一个网站时,浏览器会自动把这段数据带回给服务器。就像你在便利店办了张会员卡,店员记住了你的偏好,下次你一进门就能喊出你的名字。
为什么HTTP需要Cookie?
HTTP协议本身是“无状态”的,意思是每次请求都是独立的,服务器不会记得你上一次做了什么。比如你登录了账号,刷新页面后服务器并不知道你是谁,还得重新登录。Cookie就是来解决这个问题的——它把你的登录状态“存”下来,让服务器能认出你。
Cookie是怎么工作的?
当你第一次登录某个网站,服务器验证通过后,会在响应头里加上这样一行:
Set-Cookie: session_id=abc123; Path=/; HttpOnly
浏览器收到后,就把session_id=abc123存进本地。之后你每访问这个网站的页面,浏览器都会自动带上:
Cookie: session_id=abc123
服务器一看这个ID,就知道你是“老顾客”,不用再输密码。
除了登录,Cookie还能做什么?
购物车信息、页面主题偏好、语言设置,甚至广告推荐,背后都有Cookie的影子。比如你总在深夜浏览相机,第二天打开新闻网站,首页就开始推微单相机的广告——别怀疑,是你之前留下的Cookie“出卖”了你。
Cookie安全吗?
大多数正规网站会用HttpOnly和Secure标记来保护Cookie,防止被恶意脚本读取。但公共电脑上登录账号后不退出,别人接着用浏览器,还是可能看到你的信息。所以用完记得点“退出登录”,别图省事。
能不能禁用Cookie?
可以,浏览器设置里能关掉。但后果也很明显:几乎每个网站都要反复登录,购物车清空,个性化推荐全失效。就像去餐厅吃饭,每次都说自己是第一次来,服务员当然没法给你推荐招牌菜。