Cookie
HTTP协议无状态,服务器单从网络连接上无法知道客户身份,如何记录客户端用户信息,这里就用到了Cookie
当用户第一次访问并登陆一个网站的时候,Cookie的设置以及发送会经历如下四个步骤:
1.客户端发送一个请求到服务器。
2.服务器使用response向客户端颁发一个cookie。
3.客户端保存cookie,之后每次向服务器发送请求时,都会把请求的网址连同该cookie一同提交给服务器。
4.服务器检查该cookie,以此来辨认用户状态。
cookie属性项目
属性名 描述
name 该Cookie的名称,Cookie一旦创建,名称便不可更改。
value 该Cookie的值。
maxAge 该Cookie失效的时间,单位秒。
secure 该Cookie是否被使用安全传输协议传输。安全传输协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密,默认为false
path 该Cookie的使用路径。
domain 可以访问该Cookie的域名
comment 该Cookie的用处说明,浏览器显示Cookie信息的时候显示该说明
version 该Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范。
默认情况下,cookie存储在浏览器的内存中,当浏览器关闭,内存释放,则cookie被销毁。
setMaxAge(int seconds) 设置cookie存活时间
1.正数:将cookie写入浏览器所在电脑的硬盘,持久化存储,到时间自动删除
2.负数:默认值,cookie在当前浏览器中,当浏览器关闭,则cookie被销毁
3.零: 删除对应cookie
如果设置domain为: ".google.com",则所有的以"google.com"结尾的域名都可以访问该cookie
cookie是不可跨域名的,域名www.google.com颁发的cookie不会被提交到www.baidu.com去
这是由Cookie的隐私安全机制决定的。隐私安全机制能够禁止网站非法获取其他网站的Cookie。
Session
session是服务器端使用的一种记录客户端状态的机制
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上
cookie保存在客户端浏览器上
---------------- -------------------------------------
| | | 服务器 |
| | 1.请求 |2.sessionID session对象 |
|客户端 |---------------------------> | \ / |
| | | 以ID为键,session对象存储 |
| | 3.将sessionID | 在Map中。 |
| |<--------------------------- | |
| | 以cookie的方式发送 | |
| | 给客户端 | |
|浏览器 | | |
| | |5.根据sessionID找到对应的 |
| | 4.再次请求携带 |session对象。 |
| |---------------------------> | |
---------------- sessionID ------------------------------------
1.cookie 和 session 都是来完成一次会话多次请求间数据共享的
2.区别
1>存储位置:cookie是将数据存储在客户端,session将数据存储在服务器端
2>安全性: cookie不安全,session安全
3>数据大小: cookie最大3KB,session无大小限制
4>存储时间:cooke可以长期存储,session默认30分钟(tomcat)
5>服务器性能:cookie不占用服务器资源,session占用服务器资源
cookie & session
于 2022-11-01 17:16:19 首次发布