Cookie和Session

2018-08-29  本文已影响0人  平凡的lily

cookie是服务端通过Set-Cookie设置到浏览器中,浏览器保存这个值后,下次在同域的请求时就会自动带上这个cookie(比如一个会话中,保存了用户的登录信息和登录状态,有助于服务端读取,并且返回正确的内容)。存储形式是键值对。Cookie的属性:max-age和expires设置过期时间;Secure只在https的时候发送;设置HttpOnly,则无法通过document.cookie(js的一个api)访问(有助于提高安全性)。

下面通过一个简单的例子说明:创建test.html和serve.js

test.html server.js

启动node server.js,打开页面,浏览器中console和network显示如下(这个是通过document.cookie读取打印出来的):

第一次打开网页的network如下(此时request header中没有Cookie):

刷新页面,network如下(再次请求,request header中出现Cookie):

服务端向浏览器写入cookie可以在浏览器如下查看:

同时Set-Cookie可以设置过期时间和多个值,node中是通过设置数组的方式:

刷新请求后,network中图如下:

可以看出几个存储键值对的不同。15s以后,刷新浏览器,查看network:

15s后,request header中不再带上过期的Cookie。注意这里由于后只做了简单的处理,我们再次快速刷新两次,则两个Cookie仍然会带上。

带上HttpOnly则不可用document.cookie访问,更改server.js如下:

server.js

这里只读取到了name='simple'。设置HttpOnly是一种最佳实践。

Session 的知识后续总结。。。。。。。。

上一篇下一篇

猜你喜欢

热点阅读