Cookie的概念:
cookie的中文翻译是曲奇,小甜饼的意思。cookie其实就是一些数据信息,类型为“小型文本文件”,存储于电脑上的文本文件中。
那么Cookie有什么作用呢?
生活中我们第一次登录优快云网站时都需要输入用户名和密码,当我们关闭浏览器,第二天登录优快云时往往可以直接登录,那么这个用户名和密码我们没有输入,是浏览器记住了我们上一次的输入信息,并保存在浏览器中,第二次帮我们输入了,所以可以不用输入用户名和密码直接登录了。
Cookie表示:
一般情况下,cookie是以键值对进行表示的(key-value),例如name=jack,这个就表示cookie的名字是name,cookie携带的值是jack。
举例来说:
我们在发送HTTP请求时,发现游览器将我们的cookie都进行了携带(注意:游览器只会携带在当前请求的url中包含了该cookie中path值的cookie),并且是以key:value的形式进行表示的。多个cookie用;进行隔开。
总结来说:
Cookie就是一些数据,用于存储服务器返回给客服端的信息,客户端进行保存。在下一次访问该网站时,客户端会将保存的cookie一同发给服务器,服务器再利用cookie进行一些操作。利用cookie我们就可以实现自动登录,保存游览历史,身份验证等功能。
Session的概念:
session在网络应用中称为“会话控制”,是服务器为了保存用户状态而创建的一个特殊的对象。简而言之,session就是一个对象,用于存储信息。
session有什么用
我们先来想一个问题,这个问题就是我们在游览购物网站时,我们并没有登录,但是我们任然可以将商品加入购物车,并且进行查看,当我们退出游览器后再打开游览器进行查看时,购物车中依然有我们选择的商品,这该怎么实现呢?
当然,我们可以使用cookie,但是cookie能存放大量数据吗?这时,我们就需要一种新的技术,Session。session是存储于服务器端的特殊对象,服务器会为每一个游览器(客户端)创建一个唯一的session。这个session是服务器端共享,每个游览器(客户端)独享的。我们可以在session存储数据,实现数据共享。
这是session的简单原理示意图

每个客户端对应一个不同的会话:
session的存储形式
session类似于一个Map,里面可以存放多个键值对,是以key-value进行存放的。key必须是一个字符串,value是一个对象。session底层实现机制
session是每一个游览器(客户端)所唯一的,这个是怎么实现的呢?其实,在访问一个网站时,在HTTP请求中往往会携带一个cookie,这个cookie的名字是JSESSIONID,这个JSESSIONID表示的就是session的id,这个是由服务器创建的,并且是唯一的。服务器在使用session时,会根据JSESSIONID来进行不同操作。下面我使用图示来进行说明

session和cookie的比较
cookie保存在客户端,session保存在服务端
cookie作用于他所表示的path中(url中要包含path),范围较小。
session代表客户端和服务器的一次会话过程,web页面跳转时也可以共享数据,范围是本次会话,客户端关闭也不会消失。会持续到我们设置的session生命周期结束(默认30min)我们使用session需要cookie的配合。
cookie用来携带JSESSIONIDcookie存放的数据量较小,session可以存储更多的信息。
cookie由于存放在客服端,相对于session更不安全由于session是存放于服务器的,当有很多客户端访问时,肯定会产生大量的session,这些session会对服务端的性能造成影响。
Cookie是存储在客户端的小型文本文件,常用于实现自动登录、保存浏览历史等,而Session是服务器端的对象,用于存储用户状态,实现跨页面数据共享。每个Session对应一个唯一的JSESSIONID,通过Cookie在客户端和服务器间传递。Session比Cookie更安全,但大量Session可能影响服务器性能。
3732

被折叠的 条评论
为什么被折叠?



