| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Nodejs之会话控制学习(cookie和session) -> 正文阅读 |
|
[网络协议]Nodejs之会话控制学习(cookie和session) |
会话控制学习资料 HTTP协议是一个无状态的协议,它无法区分多次请求是否发送自同一客户端。 而我们在实际的使用中,却又大量的这种需求,我们需要通过会话的控制来解决该问题。 cookieCookie 是服务器保存在浏览器的一小段文本信息,一般大小不能超过4KB。浏览器每次向服务器发出请求,就会自动附上这段信息。 HTTP 协议不带有状态,有些请求需要区分状态,就通过 Cookie 附带字符串,让服务器返回不一样的回应。举例来说,用户登录以后,服务器往往会在网站上留下一个 Cookie,记录用户编号(比如 cookie本质是一个存储在浏览器的文本,随着http请求自动传递给服务器。也可以说cookie是一个头(请求头/响应头): 服务器以响应头的形式将Cookie发送给浏览器 浏览器收到以后会自动将Cookie保存 浏览器再次访问服务器时,会以请求头的形式将Cookie发回 服务器就可以通过检查浏览器发回的Cookie来识别出不同的浏览器 控制台中的cookie cookie是按照域名来保存的。
在浏览器中的设置中查看cookie 现在浏览器已近不在明文保存cookie了,都会做加密处理,这是为了安全性。一旦被别人拿到你的cookie那么就可以查看到一些关于你的相关信息。 cookie的不足 各个浏览器对cookie的数量和大小都有不同的限制,这样就导致我们不能在Cookie中保存过多的信息。一般数量不超过50个,单个大小不超过4kb。 cookie是由服务器发送给浏览器,再由浏览器将cookie发回,如果cookie较大会导致发送速度非常慢,降低用户的体验。 cookie 的安全性其实也比较差,比如说如果有中间代理,那么它就可以截取报文中的cookie。 Nodejs中cookie 的使用cookie是怎么来的?
百度首页是这样的。浏览器拿到响应报文之后,会解析报文,看了Set-cookie 就会进行本地的保存 在nodejs中设置cookie下载一个包- 文档:cookie-parser - npm (npmjs.com) js
再次请求,可以看到,请求头里面已经有设置的cookie了,这里的%40 -> @ 设置带有时效性(生命周期)的cookie
浏览器中显示的秒 180s 带有时效性的cookie,关闭浏览器不会销毁cookie。只有等时间过完。 不带时效性的cookie,关闭浏览器就会销毁,不关闭浏览器,此cookie一直有效。 set-cookie中的Path这个Path是设置此cookie生效的路径 ,这里的 如果path是 cookie的读取
cookie的清除
其实就是在响应头里面设置响应的键的值为空就行了。下图设置了 这样浏览器就会自动清除email这个cookie了。 sessionsession 是一个对象,存储特定用户会话所需的属性及配置信息。 session是一个保存在服务端的数据(邮箱、用户名、购物车、历史、权限信息、严格、验证码等)。 session的运行流程我们可以在服务器中为每一次会话创建一个对象,然后每个对象都设置一个唯一的id,并将该id以cookie的形式发送给浏览器,然后将会话中产生的数据统一保存到这个对象中,这样我们就可以将用户的数据全都保存到服务器中,而不需要保存到客户端,客户端只需要保存一个id(cookie返回,也叫session id)即可。 nodejs中使用session在express框架下使用session 安装express-sessionexpress-session - npm (npmjs.com)
使用express-sessionExpress-session的使用 - LoaderMan - 博客园 (cnblogs.com)
cookies 与 session 的区别存在的位置: cookie 存在于客户端,临时文件夹中 session 存在于服务器的内存中,一个session域对象为一个用户浏览器服务 安全性: cookie是以明文的方式存放在客户端的,安全性低,可以通过一个加密算法进行加密后存放 session存放于服务器的内存中,所以安全性好 网络传输量: cookie会传递消息给服务器 session本身存放于服务器,但是通过cookie传递id,会有少量的传送流量 生命周期(以20分钟为例): cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,cookie生命周期结束 session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问session,那么session生命周期被销毁;但是,如果在20分钟内(如在第19分钟时)访问过session,那么,将重新计算session的生命周期;关机会造成session生命周期的结束,但是对cookie没有影响 大小: cookie 保存的数据不能超过4K,很多浏览器都限制一个站点最多保存50个cookie session 保存数据理论上没有任何限制(内存有多大就能有多大) |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:53:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |