Cookie和Session

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 的知识后续总结。。。。。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容