700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > (干货满满!)session和cookie作用原理 区别(史上最详细)

(干货满满!)session和cookie作用原理 区别(史上最详细)

时间:2020-02-20 00:00:38

相关推荐

(干货满满!)session和cookie作用原理 区别(史上最详细)

一、Cookie概念

在浏览某些 网站 时,这些网站会把 一些数据存在 客户端 , 用于使用网站 等跟踪用户,实现用户自定义 功能.

是否设置过期时间:

如果不设置 过期时间,则表示这个 Cookie生命周期为 浏览器会话期间 , 只要关闭浏览器,cookie就消失了.

这个生命期为浏览会话期的cookie,就是会话Cookie;

存储:

一般保存在 内存,不在硬盘;

如果设置了过期时间, 浏览器会把cookie保存在硬盘上,关闭再打开浏览器, 这些cookie 依然有效直到 超过的设置过期时间;

存储在硬盘上的Cookie可以在不同的浏览器进程间共享,比如两个IE窗口。

原理:

如果浏览器使用的是 cookie,那么所有的数据都保存在浏览器端,

比如你登录以后,服务器设置了 cookie用户名(username),那么,当你再次请求服务器的时候,浏览器会将username一块发送给服务器,这些变量有一定的特殊标记。服务器会解释为 cookie变量。

所以只要不关闭浏览器,那么 cookie变量便一直是有效的,所以能够保证长时间不掉线。

如果设置了的有效时间,那么它会将 cookie保存在客户端的硬盘上,下次再访问该网站的时候,浏览器先检查有没有 cookie,如果有的话,就读取该 cookie,然后发送给服务器。

二、Session的概念

Session 是存放在服务器端的类似于HashTable结构(每一种web开发技术的实现可能不一样,下文直接称之为HashTable)来存放用户数据;

作用:实现网页之间数据传递,是一个存储在服务器端的对象集合。

原理:系统在创建Session时将为其分配一个长长的字符串标识,以实现对Session进行管理与跟踪。

session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

是否已经创建过session:

当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),

如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来…使用(检索不到,会新建一个),

如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,

session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。

(总结: 创建一个session时,服务器看这个客户端 是否包含session标识, 是的话按照session id把session检索出来,否则就得 新建一个.)

Session ID的保存方法:

使用Cookie来保存,这是最常见的方法。

服务器通过设置Cookie的方式将Session ID发送到浏览器。

如果我们不设置这个过期时间,那么这个Cookie将不存放在硬盘上,当浏览器关闭的时候,Cookie就消失了,这个Session ID就丢失了。

如果我们设置这个时间为若干天之后,那么这个Cookie会保存在客户端硬盘中,即使浏览器关闭,这个值仍然存在,下次访问相应网站时,同 样会发送到服务器上。

cookie 和session 的区别

cookie数据存放在客户的浏览器上,session数据放在服务器上.

简单的说,当你登录一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上面,

客户端每次请求服务器的时候会发送 当前会话的session_id,服务器根据当前session_id判断相应的用户数据标志,以确定用户是否登录,或具有某种权限。

session_id是服务 器和客户端链接时候随机分配的,使用Cookie保存

cookie不是很安全

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,此时应考虑反序列化——>传送门

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。