目录
cookie
1、什么是cookie
Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。
2.为什么要用cookie
由于http是无状态协议(服务端和客户端相互之间不认识)
关于http协议详情可以移步 http协议
Cookies可以存储一些在用户电脑上的小文件。它是被设计用来保存一些站点的用户数据,这样能够让服务器为这样的用户定制内容。页面代码能够获取到Cookie值然后发送给服务器,比如Cookie中存储了所在地理位置,以后每次进入地图就可以默认定位到改地点。
3、cookie的工作原理
- 当用户第一次登录时,向服务器发送请求
- 服务器根据用户信息,服务器帮用户创建一个cookie来识别用户身份,存储在数据库中,并发送给浏览器
- 浏览器将获得cookie数据存储在本地浏览器中。(cookie由客户端保存)
- 再次发送请求时,服务器会检索cookie,验证用户身份
- cookie的简易工作流图方便大家理解:
4、cookie的特点:
-
保存到客户端,容易被篡改(删除、禁用)
-
保存的数据量有限的(大小受限,最大4kb)
-
简单易懂好用
session
1、什么是session
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了session是一种特殊的cookie。cookie是保存在客户端的,而session是保存在服务端。
2.为什么要用session
由于cookie 是存在用户端,而且它本身存储的尺寸大小也有限,最关键是用户可以是可见的,并可以随意的修改,很不安全。那如何又要安全,又可以方便的全局读取信息呢?于是,这个时候,一种新的存储会话机制:session 诞生了!
3、session的工作原理
- 客户端第一次请求服务端;
- 服务器生成一份session保存在服务端将该数据(session)的id以cookie的形式传递给客户端;
- 客户端第二次请求服务端,浏览器会自动的携带cookie来访问服务器(session_id);
如此可见,session最重要的是session_id,存储在cookie中,所以session依赖于cookie,当一个浏览器禁用cookie功能,session也无法使用!
- 我们来简单看一下session工作流程图:
4、session的特点
- 用于存储一次会话的多次请求,存在服务端。
- 可以存储任意类型,任意大小的数据
- 依赖于cookie,浏览器禁用cookie,session也无法使用
cookie和session的区别
1、保存的位置不同
cookie存储在客户端,而session存储在服务端
2、使用的方式不同
cookie:如果在浏览器端对cookie进行设置对应的时间,则cookie保存在本地硬盘中,此时如果没有过期,则就可以使用,如果过期则就删除。如果没有对cookie设置时间,则默认关闭浏览器,cookie就会被删除。
session:我们在请求中,如果发送的请求中存在session_id,则就会找到对应的session对象,如果不存在session_id,则在服务器端就会创建一个session对象,并且将sessionId返回给客户端,可以将其放到cookie中,进行传输。
3、存储内容不同
cookie只能存储字符串,而session
存储结构类似于hashtable结构,可以存放任何类型。
4、存储大小不同
cookie最多可以存放4k
大小的内容,session则没有限制。
5、安全性不同
session的安全性要高于cooKie
6、性能不同
session会比较占用服务器性能,所以一般情况下我们普遍应用cookie