session和cookie

Session

Session的实现方式有两种:使用URL重写,或者使用cookie

URL重写:每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户。

Cookie 来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

session 过期时间为 0,不需要考虑。

session采用发呆时间,默认是用户不操作超过20分钟即失效。

Cookie

HTTP协议本身是无状态的。什么是无状态呢,即服务器无法判断用户身份。Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。

cookie属性项:

NAME=VALUE: 键值对,可以设置要保存的 Key/Value,注意这里的 NAME 不能和其他属性项的名字一样
Expires: 过期时间,在设置的某个时间点后该 Cookie 就会失效
Domain: 生成该 Cookie 的域名,如 domain=“www.baidu.com”
Path: 该 Cookie 是在当前的哪个路径下生成的,如 path=/wp-admin/
Secure: 如果设置了这个属性,那么只会在 SSH 连接时才会回传该 Cookie

cookie一般分两种。1.不设置过期时间,会存在内存里,浏览器关闭即失效。2.设置过期时间,会存在硬盘里,一直到过期时间才失效。

Session和Cookie的区别

1,session 在服务器端,cookie 在客户端(浏览器)
2,session 默认被存在在服务器的一个文件里(不是内存)
3,session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4,session 可以放在 文件、数据库、或内存中都可以。
5,用户验证这种场合一般会用 session

SessionCookie
存放位置服务器客户端(浏览器)
运行方式1、session id(存在cookie中) 。2、使用url重写(url后加sid)
过期时间0,默认不操作20分钟失效1、不设置过期时间,浏览器关闭失效。2、设置过期时间,直到过期时间失效
安全性能存储在服务器,安全存储在客户端,可能会被抓取,篡改(cookie欺骗,cookie截获)
使用场景用户验证浏览器记录密码

因此,维持一个会话的核心就是客户端的唯一标识,即 session id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值