cookie的用处:
当不同的用户访问同一家网站时(采用相同的请求地址),服务器如何区分不同用户的请求操作呢?需要浏览器对发出的每个请求进行标识。属于同一个会话的请求,都带有相同的标识,不同的会话带有不同的标识。

cookie的底层原理:
客户端(浏览器)访问web服务器时(jsp文件),服务器通过Cookie构造器构造一个Cookie实类。然后由web服务器在HTTP响应消息头中附带Cookie实类至客户端,并保存到客户端内存中。在cookie生命周期内,以后每次请求都携带cookie

第一次访问
请求域中并未携带cookies,服务端接受请求之后,进行响应,将生成的cookie 传至客户端,保存在内存中
第二次访问
请求域从内存中取出cookies并携带至服务端,服务端根据cookies对请求进行分类

cookie和sesion的联系
1,浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONID=ID的值, (将sessionId 以响应报文的方式传回客户端浏览器内存或以重写url方式送回客户端)创建一个Cookie对象key为JSSIONID,value为ID的值,关闭此浏览器窗口,其内存中jsessionId也就随之销毁。
2,浏览器在第二次访问服务器的时候携带Cookie信息JSESSIONID=ID的值,如果该JSESSIONID的session已经销毁, 那么会重新创建一个新的session再返回一个新的JSESSIONID通过Cookie返回到浏览器
3,session是基于Cookie技术实现,重启浏览器后再次访问原有的连接依然会创建一个新的session, 因为Cookie在关闭浏览器后就会消失,但是原来服务器的Session还在,只有等到了销毁的时间会自动销毁(session失效时间默认30分钟,可以通过session.invalidate使session失效)

总结:
一般session都是在cookie的基础上实现的,每一个不同的session对应着一个不同的session_id,这个session_id是用来判断session是否相同的,session_id大多是情况下都是默认通过cookie传输,所以说session是基于cookie的基础的(当然session_id也可以通过其他方式传输,只要将这个session_id传到客户端就可以,比如URL rewriting重写URL也可可以替代cookie传输session_id),隐藏域(隐藏form表单提交session_id也可以)

cookie小结的更多相关文章

  1. rails: 的cookie小结

    cookie会随着浏览器每次发起的请求(request)传给服务器进行读取,而服务器则会在应答(response)中携带cookie写在本机上.因此,cookie是存储在本地的.而且由于cookie的 ...

  2. ASP.NET-【状态管理】-Cookie小结

    Cookie路径 谷歌浏览器 依次点击设置--高级选项--内容设置--cookies--选择“显示cookies和其他网站数据”按钮就可以看到了 C:\Users\Administrator\Loca ...

  3. 【原】cookie小结

    前记:前段时间搞一个活动,开发的时间被严重压缩,忙到飞起,以致于都没怎么写文章了,内疚. 2月份参加了一场面试,有一些关于cookie的问题回答的不是很好,所以这篇文章我们来对cooKie做一个探讨和 ...

  4. cookie小结(转)

    原文地址:http://www.cnblogs.com/xianyulaodi/p/6476991.html#_label0 作者:咸鱼老弟   阅读目录 什么是cookie       官方定义:N ...

  5. 再好好聊聊 HTTP 里的 Cookie | 实用 HTTP

    题图:by Juan Pablo Arenas 一.序 Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Hea ...

  6. session和cookie知识点总结

    cookie小结:1.cookie是在服务端创建2.cooki是保存在浏览器这一端3.cookie的生命周期可以通过 cookie.setMaxAge(2000);(如果不设置生命周期,cookie的 ...

  7. cookie与session(略谈)

    cookie (储存在用户本地终端上的数据) Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密).定义 ...

  8. php cookie及session

    1.会话控制概括 1)http协议的缺陷 无状态,就是无记忆,不能让同一浏览器和服务器进行多次数据交换时,产生业务的连续性, 2)什么是会话控制 会话控制就是解决http无记忆缺陷的,能够==将数据持 ...

  9. servlet学习笔记三

    Servlet主要内容: 1)状态跟踪 一.状态跟踪 HTTP协议是无状态协议,即请求与请求之间没有任何关系,也就是不会记住任何数据. 但若想在请求间传递数据,怎么办?web里的三个基本容器对象可以解 ...

随机推荐

  1. YII2 用 in查询的时候出现无结果, 删除某些值后查询有结果 提前sort数组即可

    YII2 用 in查询的时候出现无结果, 删除某些值后查询有结果, 在数组前用了一个 array_merge 合并了2个数组. 排查发现是 数组中键值没有挨着从0开始 另外没有从小到大, 没观察室哪个 ...

  2. Python3面向对象—点和矩形类

    Python类练习 定义一个类 class Point: '''二维坐标系中代表一个点''' pass print('打印Point:{}'.format(Point)) p1 = Point() p ...

  3. Java面试宝典2018

    转 Java面试宝典2018 一. Java基础部分…………………………………………………………………………………….. 7 1.一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制 ...

  4. (转)基于微软平台IIS/ASP.NET开发的大型网站有哪些?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  5. __http原理__HTTP 协议简介

    HTTP 协议通信流程 超文本 除了文本以外,还有其他数据类型的内容 HTTP 协议 指计算机网络通信中 两台计算机之间所必须遵守的规定或规则 Hypertext Transport Protocol ...

  6. VSCode+Xdebug断点调试PHP(全攻略)

    一直都想把php断电调试记录下来,由于拖延症极其严重导致现在才写. 好了,刚去猛喝了几碗心灵鸡汤,趁着这股劲把"Visual Studio Code如何使用XDebug进行php断点调试&q ...

  7. bitmap 合并图片

    把两张bitmap覆盖合成为一张图 /** * 把两个位图覆盖合成为一个位图,以底层位图的长宽为基准 * @param backBitmap 在底部的位图 * @param frontBitmap 盖 ...

  8. Python全栈-magedu-2018-笔记6

    第三章 - Python 内置数据结构 bytes.bytearray Python3引入两个新类型 bytes 不可变字节序列 bytearray 字节数组 可变 bytes.bytearray 字 ...

  9. 关于HTTP协议学习(二)

    一,目录结构 HTTP Cookie & Session HTTP Cache (缓存) 二,HTTP Cookie & Session 1. 我们看到的 cookie 我们通过浏览器 ...

  10. Enterprise Architect

    Enterprise Architect 是一款计算机辅助软件工程,这款软件用于设计和构建软件系统.业务流程建模及更多通用的建模.EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过 ...