COOKIE和Session的原理及异同

由于HTTP协议是无状态的,在WEB系统中,怎么识别请求来自于哪里呢?是哪一个用户发起的请求呢?

为了解决这一个问题,HTTP协议引入了cookie和session这两个概念。

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

cookie是服务器传递到浏览器,保存在浏览器中的数据,然后浏览器每次请求都带上cookie,这样就可以标识用哪一个用户发起的请求, 比如说把用户登录的用户名和密码保存在cookie中, 只要cookie没有过期,以后用户每次登录都可以自动登录了,不需要在此输入用户名和密码, 因为浏览器在发起请求的时候已经把cookie中的用户名和密码传递给服务器了。

session是什么呢?session把用户的信息保存在服务器上面, 浏览器第一次访问的时候服务器把sessionID传递到浏览器,然后浏览器把Session_id保存在cookie中, 每次访问把session_id带上,服务器就可以标识这个请求来自于那个用户,然后根据session_id查这个这个用户的seesion里面记录了哪些数据。

 session和cookie的共同点: 记录用户状态

cookie: 会话跟踪技术 存储在客户端
session:会话跟踪技术 存储在服务端

session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期,Session是依赖cookie工作的。
注:为这个用户创建的Cookie的名称是aspsessionid。这个Cookie的唯一目的就是为每一个用户提供不同的身份认证。

cookie是记录在浏览器上面而session是记录在服务器。

 http的cookie和session都可以被伪造

 看到一个cookie, 至少要知道cookie这6个字段分别是什么?

name:cookie的名字

value: cookie的值

domain:cookie 的作用域

path:cookie适用的路径

secure:cookie 的安全策略

expire:cookie的过期时间

posted on 2019-04-19 13:46  瓦力伊娃  阅读(251)  评论(0编辑  收藏  举报