客户第一次发送请求给服务器,此时服务器产生一个唯一的sessionID,并返回给客户端(通过cookie),此时的cookie并没有setMaxAge();只是保存于客户端的内存中,并与一个浏览器窗口对应着,由于HTTP协议的特性,这一次连接就断开了
以后此客户端再发送请求给服务器的时候,就会在请求request中携带cookie,由于cookie中有sessionID,所以服务器就知道这是刚才那个客户,从而区分不同的人,购物车就是这样实现的
举个简单例子就像人们去超市购物,去存包,第一个去的时候(客户第一次发送请求给服务器),超市会给你一个号码牌(此时服务器产生一个唯一的sessionID,并返回给客户端(通过cookie)),你可以在你自己的柜子里存东西(在服务器属于此客户的内存区域存数据),下次你再去的时候,拿着这个号码牌(请求request中携带cookie),超市就知道哪些东西是你的,然后给你取出来,如果你几天都没去取(session失效了,在服务器端配置),你再去的时候东西就拿不到了
如果你把这个号码牌丢了(刚才的cookie失效了,比如你重启电脑,刚才存于内存中sessionID也就丢了),再去拿东西,当然无法定位了,也就拿不到东西了
如果是新打开一个浏览器的情况,那就像是又一个人去超市存东西一样,你的东西跟他的东西是两码事,互不影响,他有他自己的sessionID,你有你自己的

以下是我用firefox中的firebug测试结果
第一次请求时:(注意,访问jsp时会自动创建sessionID,而访问Servlet,需要你自己写代码才会创建sessionID)

可以看到服务器给我们分配了一个sessionID,随着响应返回给客户端

第二次请求时:

之后请求时,客户端都会携带这个sessionID,以便服务器能辨认

session 跟 cookie 关系相关推荐

  1. 浅谈Session与Cookie的关系

    阅读目录 一.概念理解: 首先cookie是服务端识别客户的唯一标识的依据,客户在访问网站时候,服务端为了记住这个客户,会在服务端按照它的规则制作一个cookie数据,会将这个cookie数据保留在服 ...

  2. 白话 Session 与 Cookie:从经营杂货店开始

    在Web开发里面有一个历久不衰的议题,那就是Session与Cookie的区别.从我刚开始学程序时这一题就常出现在面试考题里,一直到现在都还是能看见这个问题. 这个问题重要吗? 我觉得满重要的.因为S ...

  3. 深入理解 Session 与 Cookie

    Session 与 Cookie 不管是对 Java Web 的初学者还是熟练使用者来说都是一个令人头疼的问题.在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题.其实这个问题回答起来既简单又复 ...

  4. 深度实现session【包括session入库、session机制和session和cookie的使用方法,完善会话机制(在分布式机器中也能使用)】、无限分类的实现...

    1.session的注意点: @session_start();//这个配置需要注意,session开启中会有影响,所以使用错误抑制符进行限制[并且使用php.ini对session进行自动开启] s ...

  5. 【网络通信与信息安全】之深入分析Token、session和cookie的使用场景和区别

    在 Web 开发领域,相信大家对于 Cookie 和 Session 都很熟悉,Cookie 和 Session 都是会话保持技术的解决方案.随着技术的发展,Token 机制出现在我们面前,不过很多开 ...

  6. Session,Cookie,jsessionid,Url重写

    在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码: < % cookie[]cookies ...

  7. PHP会话管理——Session和Cookie

    会话管理包括:Session和Cookie,主要功能都是把客户端和服务器关联起来,用于管理和查看用户在网站中的状态. 背景 Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦 ...

  8. php session和cookie区别,php中session和cookie的区别是什么?

    一.Session (1)Session的由来以及介绍 Session:在计算机中,尤其是在网络应用中,称为"会话控制",生存时间为用户在浏览某个网站时,从进入网站到关闭这个网站所 ...

  9. apache 设置session超时时间_深入分析 Session 和 Cookie,看这篇就对了

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 第一时间与你相约 每日英文 Promise yourself to be so strong that nothing can ...

最新文章

  1. R语言dplyr包combine()函数实现数据拼接(concatenate)实战
  2. Asp.Net编码模型
  3. SQL server的with的用法(一)
  4. MathType可以在Word、PPT中插入矩阵吗
  5. CSS里的inline-size和逻辑属性
  6. mybatis中#和$区别
  7. matlab 画光束等相面,一种新型贝塞尔光束器件的设计方法
  8. Akka查询设备组《fourteen》译
  9. Oracle使用exp导出命令备份数据库
  10. java中double类型占几个字节_Java中的单双精度数据类型分别占几个字节?
  11. 苹果ttc转ttf_iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc字体文件)
  12. Spring Boot+Spring Security:注解:@PreAuthorize,@PostAuthorize, @Secured, EL实现方法安全 - 第20篇
  13. tolower c语言,C语言 tolower()用法及代码示例
  14. Python视频剪辑Auto-Editor一键预处理口播无声片段
  15. Javascript:公农历节日周年计算
  16. python简单实现微信抢红包功能
  17. 浏览器网页缩放对页面的影响
  18. 2021-06-22 9点30 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周一晚上第一个较为正常的4小时反弹出现,日线底分型出现,量能上有持续反弹概率高。周月线持续跌势。
  19. 图像识别——(java)opencv(处理图像各种算法测试)
  20. RAID技术全解图解-RAID0、RAID1、RAID5。。。【转】

热门文章

  1. kotlin中mainactivity无法直接调用xml中的控件_使用Kotlin高效地开发Android App(一)
  2. LabVIEW多列列表框背景颜色操作
  3. sql年月日加减法,计算两个日期之间的天数
  4. 科技英语翻译计算机化考试,2017年英语四级翻译范文之考公热
  5. linux11g导入10g 怎么改版本,Oracle 11g导入到10g引起的错误
  6. win10如何截屏_win10系统电脑截屏的多种操作方法
  7. Handler的源码分析
  8. Centos R安装
  9. Dynamic CRM 2013学习笔记(四十二)流程5 - 实时/同步工作流(Workflow)用法图解...
  10. G-华华对月月的忠诚