当前位置:首页 > 后端开发 > Cookie和Session的原理及区别

Cookie和Session的原理及区别

7个月前 (05-21)73

Cookie和Session的原理及区别

1.Cookie

  • Cookie是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器。Cookies保存在客户端,主要内容包括:名字,值,过期时间,路径等等。
  • 通俗讲,是访问某些网站后在本地存储的一些网站相关信息,下次访问时减少一些步骤。更准确的说法是:Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器,是在客户端保持状态的方案。
  • Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
应用场景:登录网站,今输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是cookie

会话cookie和持久cookie的区别

  • 会话cookie:不设置过期时间,只要关闭浏览器窗口cookie就消失了。会话cookie不保存在硬盘上,保存在内存里。
  • 持久cookie:设置过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
    利用持久Cookie自动登录:当用户在某个网站注册后,就会收到一个惟一用户ID的cookie。客户后来重新连接时,这个用户ID会自动返回,服务器对它进行检查,确定它是否为注册用户且选择了自动登录,从而使用户无需给出明确的用户名和密码,就可以访问服务器上的资源。

2.Session

  • 存在服务器的一种用来存放用户数据的类HashTable结构。
  • 浏览器第一次发送请求时,服务器自动生成了一HashTable和一Session ID来唯一标识这个HashTable,并将其通过响应发送到浏览器。浏览器第二次发送请求会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的HashTable。
  • 一般这个值会有个时间限制,超时后毁掉这个值,默认30分钟。
  • 当用户在应用程序的 Web页间跳转时,存储在 Session 对象中的变量不会丢失而是在整个用户会话中一直存在下去。
  • Session的实现方式和Cookie有一定关系。建立一个连接就生成一个session id,打开几个页面就好几个了,这里就用到了Cookie,把session id存在Cookie中,每次访问的时候将Session id带过去就可以识别了
应用场景:session一个场景是购物车,添加了商品之后客户端处可以知道添加了哪些商品,而服务器端如何判别呢,所以也需要存储一些信息就用到了session。

3.区别

  • Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。

  • Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。

  • cookie只能存储字符串,session可以存储对象

  • Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。

  • Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。

  • session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。

  • session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。

作者:_nigar
来源链接:https://blog.csdn.net/nigar_/article/details/107995468

标签: CookieSession

“Cookie和Session的原理及区别” 的相关文章

session、cookie和application的区别

session、cookie和application的区别

首先先来个总结:   当你浏览网页的的时候,会有一些推送消息,大多数是因为你最近浏览过同类的东西。这是因为,你浏览某个网页的时候,web服务器会先送一些资料...

Node.JS学习——使用cookie 和 session

众所周知,HTTP 是一个无状态协议,所以客户端每次发出请求时,下一次请求无法得知上一次请求所包含的状态数据,如何能把一个用户的状态数据关联起来呢? cooki...

Session、Cookie、Application、ViewState和Cache 这四者的区别

Session、Cookie、Application、ViewState和Cache 这四者的区别

ViewState是维护页面状态的 Application是维护Web应用程序状态的,整个Web应用程序(站点/虚拟目录)只有一个 Session是维护会话状态的,每个客户有一个...

ASP.NET内置对象之Session ,Cookie ,Application

ASP.NET内置对象之Session ,Cookie ,Application

 注:本文主要是参考《ASP.NET 夜话》,加入了自己的整理 做asp.net开发时无需new就能使用的对象,如:   Request ,Response ,Se...

详解 Session 和 Cookie

详解 Session 和 Cookie

前提 51 也有个文章跟我一样,是我自己投的稿哈   为什么要用Session和Cookie? 简单一句话,因为 Session 和 Cookie 可以...

三种状态对象的使用及区别(Application,Session,Cookie)

Application状态对象 Application 对象是HttpApplication 类的实例,将在客户端第一期从某个特定的ASP.NET应用程序虚拟目录中...

接口的鉴权cookie、session和token

接口的鉴权cookie、session和token

1、HTTP是无状态协议 什么是无状态?就是说这一次的请求和上一次的请求是没有任何关系的,无法共享信息。好处就是速度快。 2、cookie、session的加入 HTT...

token,session,以及cookie的联系和区别

token,session,以及cookie的联系和区别

  token就是令牌,比如你授权(登录)一个程序时,他就是个依据,判断你是否已经授权该软件;cookie就是写在客户端的一个txt文件,里面包括你登录信息之类的,...

cookie与session的区别与联系

cookie与session的区别与联系

cookie是什么?     cookie是存在于客户端(浏览器)。   cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所...

深入理解cookie和session

深入理解cookie和session

cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结。(转发自https://www.cnblogs.com/roy-bl...