1.Cookie的工作原理
Web应用程序中使用的是HTTP.HTTP是无状态协议,客户端与服务器完成业务交互后,它们之间的联系会关闭.由于交互式Web应用的需求增加,管理会话和识别用户的身份应运而生.比如,用户A登录一个网站后,在第二次登录的时候会免登录,自动进入用户A的个人主页.
服务器是怎么识别用户A的呢?服务器给每个用户发一个Cookie来标识和认证用户.Cookie本质是一段文本信息,有服务器生成,发送给浏览器,浏览器将其缓存到本地.当用户再次向服务器发出请求时,浏览器会将请求数据和Cookie一起发给服务器,服务器识别Cookie,辨认用户信息.
2.Cookie的设置和获取
在Express框架中,处理Cookie数据的第三方插件为cookie-parser,请求和响应的对象都提供了Cookie属性和方法去获取和设置Cookie.
2.1获取请求Cookie
req.cookies
2.2设置Cookie
res.cookie(name,value,[options])
name为cookie的名称,value为cookie的值.
options的取值如下:
domain | 域名.默认为当前域名 |
(key:value) | 键值对,设置要保存的key:value. |
expires | 过期时间(s),设置某个时间点,cookie失效.expires=weekend.若等于0即关闭浏览器失效 |
maxAge | 最大失效时间单位为毫秒 |
secure | 为true时,在HTTP中无效,在HTTPS中有效 |
path | 在那个路由下可以访问cookie |
httpOnly | 防止XSS攻击 |
singed | 若为true,需要res.singndCookies进行访问cookie |
安装配置
express mycookie
cd mycookie
npm install
安装第三方中间件
npm install cookie-parser -save
修改index.js文件
浏览器输入
http://127.0.0.1:3000
http://127.0.0.1:3000/set
http://127.0.0.1:3000/get