Node中的cookie的使用

摘要:
Cookie可实现此效果。这意味着第一次访问没有饼干。服务器必须再次获取请求,并在下游消息中携带cookie。浏览器稍后向服务器发送的请求将携带cookie。Cookie有几个优点和缺点● Cookie未加密,用户可以自由查看;● 用户可以删除或禁用cookie● cookie可以被篡改● cookie可用于攻击● cookie存储空间很小。未来,它将被localStorage取代,但后者版本与IE9兼容。

1.为什么使用cookie?

因为HTTP是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到,这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。

那么就乱套了,比如我上一次访问,登陆了,下一次访问,又让我登陆,不存在登陆这事儿了。所以我们需要一个东西把我的登录记录给记录下来。cookie 就达到了这个效果。

Cookie是一个很简单的想法,当我访问一个页面的时候,服务器在下行(res)HTTP报文中,命令浏览器存储一个字符串;浏览器再访问同一个域的时候,将把这个字符串携带到上行(req)HTTP请求中。

那也就说明第一次访问是不带cookie的,必须服务器再次得到这个请求,在下行的报文中携带这个cookie,以后浏览器向这个服务器发送的请求,都会携带这个cookie。

cookie有着几个优缺点

cookie是不加密的,用户可以自由看到;

● 用户可以删除cookie,或者禁用它

cookie可以被篡改

cookie可以用于攻击

cookie存储量很小。未来实际上要被localStorage替代,但是后者IE9之后的版本兼容。

2.怎么使用cookie

  第一步需要下载第三方包 cookie-parser   npm install cookie-parser

  第二步 在服务端引入

  Node中的cookie的使用第1张

    第三步 设置和读取cookie,只能在res中设置,req中读取。

    Node中的cookie的使用第2张

    我们可以看到 第一次输入时 得到的是个空对象 第二次输入是 就有效果了

    Node中的cookie的使用第3张

免责声明:文章转载自《Node中的cookie的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇创建索引之代码开发Oracle sqlldr命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

运维与自动化系列④自动化部署基础与git

运维与自动化系列④自动化部署基础与git 自动化部署基础与git 一:上一篇的代码是保存在本地,但是在生产环境当中是由版本控制进行代码管理,以便于发布代码和回滚,一般是使用gitlib比较多,另外还有用svn的公司,趋势是git为主,因此本文以git为使用对象 1.1:在git服务器新建一个web组和项目web-demo: 准备web页面并提交至git服务...

RabbitMQ 把一个queue从一个node转移到另外一个node.

最近发现有个node上面的queues占用了太多的磁盘空间, 其他的两个node的磁盘的使用两还可以, 所以打算把其中的几个queue转移到另外的两个node上。 命令行的方式: rabbitmqctl set_policy --apply-to queues --priority 100 POLICY_NAME '^test_shavel_queue$'...

session 详细解析(转)

  转自  https://www.cnblogs.com/blueskycc/p/5524709.html?tdsourcetag=s_pcqq_aiomsg http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议。所谓无状态,指的是不会维护http请求数据,http请求是独立的,非持久的。而越来越复杂的WEB应用,需要保存一些用...

EF Core 原理从源码出发(二)

紧接着我的上一篇博客,可以点击这里回到上一篇博客,上回分析到ef 两个重要的对象,StateManager和ChangeTracker这个对象,当我们向DbContext添加对象的时候我们会调用如下代码。 1 private EntityEntry<TEntity> SetEntityState<TEntity>(...

【转】nodejs获取post请求发送的formData数据

前端post请求发送formData的类型数据时,需要服务端引入中间件body-parser,主要原因是post请求发送的数据,是在http的body里面,所以需要进行解析,否则获取不到数据(数据为空) 注意:对于使用Requst Payload(以“流“的方式传递数据时,不要要这个中间件) 即便是前端浏览器能够看到数据(如下图所示)已发送并且请求成功,s...

vue项目微信端清理缓存问题解决

vue为单页面前端框架,清理缓存,常规的方式是添加html头部meta,如果逻辑里面是需要使用缓存的,这种方式不建议使用,代码片段如下: <html manifest="IGNORE.manifest"> <head> <meta charset="utf-8"> <meta name="vie...