概述
好久没有总结东西了, 今天久违的来更新下
今天的主题是计算机网络中浏览器常用的数据存储方式Cookie和Session, 介绍下Cookie和Session, 同时简单介绍下两者的区别
Cookie和Session
Cookie
首先要知道的是Cookie是存储在用户浏览器上的, 服务器发送到用户浏览器上的数据被浏览器缓存起来, 就会被保存到本地的Cookie中
浏览器在下次向服务器请求数据的时候可以携带上Coookie中的数据一起发送给服务器
看到这里大伙就知道了, Cookie主要是用于缓存一些服务器的数据的, 主要是用于保存用户的登录状态等信息, 用于弥补HTTP无状态的缺陷, 让服务器可以根据用户Cookie中的信息提供一些定制化的服务, 还可以实现单点登录
注意
- 单个Cookie保存的数据不能超过4k, 一般浏览器会限制一个网站最多保存20个Cookie
- Cookie传输有泄漏的风险, 所以不能用于保存用户的隐私数据
Session
Session是服务器和客户端一次会话过程中临时存储在服务器上的数据, Session对象可以存储特定用户的属性和配置信息
在Web页面跳转的时候Session中的变量是不会丢失的, 会在用户会话期间一直存在
- 这里就应该和Cookie区分开来了, Cookie是存储在用户浏览器上, Session是存储在服务器上的
Http是无状态的, Session又是如何区分HTTP请求是来自哪个用户的浏览器呢?
Session底层是通过Cookie来辅助实现的, 服务器会给当前和用户浏览器的会话分配一个SessionID, 用户浏览器在请求服务器的时候就会在Cookie中携带这个SessionID, 以此来维护用户的登录状态和区分存储在服务器上的不同用户的Session对象
Session和Cookie的区别
-
存储位置上
cookie数据存放在用户的浏览器上, session数据存放在服务器上 -
安全性
cookie数据存放在浏览器上, 他人可以伪造cookie
session存放在服务器上, 他人难以修改 -
性能
session会在和用户会话期间一直存储在浏览器上,当访问量大的情况下session会压迫服务器的性能
cookie数据不保存在服务器上, 对服务器负担比session小 -
生命周期不同
cookie可以在存储很长时间, Session生命周期只在一个会话时间内, Session超时 | 客户端关闭都会导致Session失效 -
存储大小不同
cookie单个存储不能超过4kb, session没有这个限制, 主要看服务器允许的范围