Cookie 和Session
创始人
2025-06-01 20:52:57
0
  1. cookie (1)cookie是什么

(2)cookie从哪里来

(3) cookie到哪里去

(4)cookie存储到哪里

cookie的典型应用

  1. cookie和session的区别

  1. 模拟登录代码

一.(1)Cookie是什么?Cookie 是浏览器提供的持久化存储数据的机制

(2)Cookie从哪里来?Cookie是从服务器返回给浏览器的,服务器代码中由程序猿决定要把啥样的信息保存到客户端这边,通过Http响应的Set-Cookie字段,把键值对写回去。

(3)Cookie到哪里去?Cookie 会在后续浏览器访问服务器的时候带到请求的header中,发给服务器,因为服务器不只是只给一个客户端提供服务,同一时刻要处理多个客户端,此时服务器可以通过cookie中的值,来识别当前客户端是谁,当前客户端的服务提供到那个环节了。

(4)Cookie存储在哪里?存储在浏览器(客户端)所在主机的硬盘上,浏览器会根据域名来分别进行存储。

Cookie的典型应用(标识用户的身份信息)

服务器不知道身份信息,针对登录操作,京东会查询数据库,验证用户名和密码,是否正确,如果正确,登录成功,京东就会把当前的用户信息,在内存中也会 保存一份,同时给这个用户分配一个表示身份的序号把这个生成的唯一身份序号称为sessionid,服务器会使用像hash表这样的结构,把身份序号作为key,身份信息作为value,以键值对的方式存储起来,服务器把这些生成的键值对称之为session(会话),

后序请求中,服务器收到Cookie中的身份序号,就会查询上述hash表,判定用户是谁,如果查到,就知道用户是谁(避免重复输入账号密码),如果没查到就会要求用户重新登录。

Cookie和Session的关联和区别

关联:在网站的登陆过程中,需要配合使用

区别:Cookie是客户端的存储机制,Session是服务器的存储机制,Cookie里面可以存各种键值对(还可以存别的),Session则专门用来保存用户的身份信息。

Cookie完全可以单独使用,不搭配session(实现非登录场景下)Session也可以不搭配Cookie使用(例如手机app登录服务器),Cookie跟浏览器强相关

Cookie属于HTTP协议中的一部分,Session则可以和HTTP无关(TCP,websocket,也可以使用session)。

二.一个模拟登录这样的代码:

  1. 编写登录页面

  1. 编写LoginServlet处理登录请求

getSession(true) 判定当前请求是否已经有对应的会话了(拿着请求里的sessionId)不存在,或者没查到就创建新会话,并插入到哈希表中,如果查到了,直接返回查到的结果

会话创建过程:会话包括两部分:1.key是sessionId 2.value是一个HttpSession对象,每个客户端登录的时候都会有一个这样的键值对(会话),服务器要管理多个这样的会话。服务器可以搞一个哈希表,把这些会话组织起来。其具体过程:1.构造一个HttpSession对象 2.构造唯一的sessionId 3.把这个键值对插入到哈希表中4.把sessionId设置到响应报文中,Set-Cookie字段中。

会话这里,服务器组织:

  1. 编写Indexservlet

@WebServlet("/index")
public class Indexservlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session=req.getSession(false);/if(session==null){System.out.println("用户未登录");resp.sendRedirect("login.html");return;}String username=(String)session.getAttribute("username");//getAttribute方法来取键值对resp.setContentType("text/html;charset=utf-8");resp.getWriter().write("欢迎"+username+"回来!");}
}

第一次交互:

第二次交互:

getSession(true)方法和getSession(false)的区别:

都是拿着sessionid去哈希表里找会话,第一个方法找到了就返回现成的,如果没找到会创建这样一个对话,而第二个找到了返回现成的,如果没找到,返回null,不会进行创建。

整个登录过程,就像去医院看病一样

首次到医院,,需要挂号,办理就诊卡(登录,创建会话,分配sessionId),我们的身份信息进入了医院的系统了,给我们发的就诊卡里,包含了我们的sessionid,后续去具体科室检查:进入呼吸科,医生开始检查,检查信息进入系统,相当于在HttpSession中设置了一些attribute,又来到发烧门诊,医生又把检查结果放到了系统,相当于在HttpSession里又设置了一些attribute.每次刷卡,都是拿着sessionId来查询系统,获取到会话对象,进一步得到里面的attributr,知道要做那些检查和结果,就诊卡里就是cookie里面存了sessionId.

相关内容

热门资讯

原创 黄... 斑马消费 杨伟 2025年A股酒水板块“冰火两重天”,白酒承压,啤酒失速,黄酒却异军突起! Wind...
原创 4... 在城市的喧嚣中,我们常常忽略了那些默默付出的劳动者。今天,我要讲述的是一位来自农村的大姐,她的故事让...
原创 鱼... 标题:鱼肉的最新吃法,不蒸不煮不烧,鲜香爽滑,可以吃下两大碗米饭! 在探索美食的旅途中,我们总在寻...
小小面团“潮”出圈 当古老技艺遇上年轻力量,会碰撞出怎样的火花?他是郎佳子彧,国家级非物质文化遗产代表性项目面人(北京面...
夏天没食欲,学做这几道家常菜|... hi,我是草莓 01 杏鲍菇炒牛肉 【材料】牛肉、杏鲍菇、泡椒、泡姜、蒜【做法】1、牛肉用生抽、蚝油...
原创 白... 作者|睿研消费 编辑|EMMA 来源|蓝筹企业评论 以旧换新的国补是一点没有,消费不足的挑战是只多不...
这几种“奇葩果” 买了就后悔,... 来源:央视三农“拇指西瓜”,长得像西瓜的微缩板,但压根不是西瓜。吃起来也远没有西瓜的甘甜多汁。刺角瓜...
原创 新... 古茗,要开始走蜜雪的路线了吗? 近日,古茗售价1元的冰水和售价2.5元的柠檬水。这是古茗在售的商...
原创 西... 标题:西红柿焖牛腩:酸爽滋味,牛肉的醇香与汤汁的余韵 在美食的世界里,有一种味道能够瞬间唤醒味蕾的...
粤菜辉煌20年,未来只能走融合... 过去二十年,粤菜从八大菜系领头羊,高端餐饮的代表菜系,到近年来被川、湘菜快速追赶,再到如今开始走融合...
原创 鲜... 标题:鲜香滑嫩的虾仁炒蛋,味道好,营养足,学生族最爱! 在繁忙的学习生活中,我们总是在寻找那些既简...
原创 1... 标题:1个芒果,1碗糯米粉,蒸一蒸做出的美食,香甜软糯,上桌就被抢光 在这个快节奏的时代,我们总是...
皖北麦浪起笔“时代答卷”:古井... 5月27日至28日,2025四季村歌特色展演暨古井贡酒•年份原浆第五届原粮丰收季在古井酒神广场盛大开...
黄山四天旅游路线推荐,黄山旅游... 黄山,这座镶嵌在安徽省南部的自然瑰宝,自古以来便以其奇松、怪石、云海、温泉四绝吸引着无数文人墨客前来...
去潮汕旅行5天4晚自由行多少钱... 去潮汕旅行5天4晚自由行多少钱,亲子出游看这篇就足够了! 潮汕,一个充满魅力的地区,以其悠久的历史、...
四川旅游攻略自由行攻略参团6日... 四川:一场视觉与味觉的盛宴 四川旅游推荐!当地导游-乐乐:185 8335 5758(加他微信-立减...
2025旅游攻略,黄山纯玩5天... 黄山,这座被誉为“天下第一奇山”的地方,以其奇松、怪石、云海、温泉、冬雪“五绝”闻名遐迩。我一直梦想...
陪父母黄山四日游报团多少钱,黄... 黄山,这座镶嵌在安徽省南部的自然瑰宝,自古以来便以其奇松、怪石、云海、温泉四绝吸引着无数文人墨客前来...
湖南旅游集团与锦江国际集团洽谈... 第四届湖南旅游发展大会期间,湖南旅游集团与锦江国际集团举行合作交流会。锦江国际集团副总裁管丽娟,湖南...