什么是cookie?

1.1 COOKIE的由来

大家都知道HTTP协议是无状态的。

  - 状态可以理解为客户端服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应的相关信息。

举个例子:

        人们常说鱼只有7秒钟的记忆,那两只鱼对话过了七秒之后,之前的存档全部消失,如果先前这两只鱼做了自我介绍,那7秒之后谁都不会记得谁。

1.2 什么是cookie

- 首先来讲,cookie是浏览器的技术,Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,可以理解为服务端给客户端的一个小甜点,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。

再举个例子:

        还是那两只鱼,为了解决这个问题,他们用了一种方法储存,现在假设a(客服端),b(服务端),a发出一个请求和一个空cookie,b收到请求和cookie后向a发出响应并把将其中的信息编辑到cookie中也一并返回。

        a收到后将得到的cookie储存在浏览器中,当第二次发送请求时将这个cookie一并发出,如此循环往复。

1.2.3 cookie的原理(重点)

1.3 cookie的工作原理是:

  - 浏览器访问服务端,带着一个空的cookie,然后由服务器产生内容,浏览器收到相应后保存在本地;

  - 当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过Cookie的内容来判断这个是“谁”了。

  - cookie的内容是有服务器自主设计的,客户端无法干涉!

CookieWeb开发中一种小的文本文件,它存储在用户的浏览器上,通常由服务器发送给客户端,用于记录和跟踪用户的会话信息。这些信息可以帮助网站识别和个性化用户体验,比如记住用户的登录状态、购物车内容等。 创建一个简单的Cookie步骤如下: 1. **使用HTTP响应头设置Cookie**: 当服务器响应客户端的请求时,可以包含一个Set-Cookie头,例如: ```javascript // JavaScript (Node.js示例) response.setHeader('Set-Cookie', `username=${encodeURIComponent(username)}`); ``` 这里,`username`是要存储的键值对,`encodeURIComponent`确保值被正确编码以适应URL。 2. **JavaScript操作Cookie**: 如果是在客户端(如浏览器)使用JavaScript,可以读取和写入Cookie: ```javascript // JavaScript 示例 function setCookie(name, value, days) { var expires = ''; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = '; expires=' + date.toUTCString(); } document.cookie = name + '=' + (value || '') + expires + '; path=/'; } // 读取Cookie function getCookie(name) { var nameEQ = name + '='; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } ``` 3. **注意安全性**: Cookie虽然方便,但也存在安全风险,比如跨站脚本攻击(XSS)和隐私泄露。因此,在实际应用中,应考虑使用HTTPS加密传输,并限制Cookie的内容和过期时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值