形象地理解Cookie和Session
Cookie和Session的形象理解
通过实际生活中的银行卡来理解Cookie和Session间的关系:
- Cookie相当于银行卡
 - Session相当于银行账户
 
结合到银行存钱和取钱的过程来理解:
存钱过程
1. 兴高采烈地到银行柜台,把要存的钱交给银行工作人员;
2. 银行工作人员把钱存好后,给你一张银行卡。
取钱过程
1. 需要用钱了,找到最近的ATM机,插入银行卡,输入密码;
2. ATM机验证密码正确后,就可以取出钱啦!
类比存钱的过程,client(你)的请求到达server(银行)后,server(银行)新建了一个Session(银行账户),并把Session(银行账户)的ID(银行卡号)放到Cookie(银行卡)中返给了浏览器;
类比取钱的过程,client(你)再次发送请求时,浏览器会自动把Cookie(银行卡)一起发送给server(银行或ATM机),server(银行或ATM机)根据Cookie(银行卡)中的ID(银行卡号)找到Session(银行账户),然后进行其它操作。
我们再来看在天猫网站购物的过程
1. 在浏览器中输入天猫的网址,然后回车(什么,不知道怎么天猫的网址?我不会告诉你,我每次也是百度一下才知道的);
2. 天猫的服务器在接收到请求后,在返回给你网页内容的同时,新建一个session,然后把session的ID放到cookie中返回;
3. 浏览器收到响应后,渲染网页的页面展示商品,同时发现有cookie,就保存一份cookie;
4. 选到自己喜欢的商品后,点击加入购物车,浏览器就会将选择的商品和cookie一起发给天猫的服务器;
5. 天猫的服务器收到你加入购物车的请求后,拿到传过来的cookie中的ID,到session中一查,原来你已经来过了,就直接在session中记录你要购买的商品;
6. 选购完所有的商品后,你想看下自己买全没有,就查看购物车;天猫服务器在接收到查看购物车请求后,根据cookie中的ID,在session中查询到你加到购物车里面的所有商品,返回给你。
为什么要使用Cookie和Session呢
因为HTTP请求是一种无状态协议,就是说,Clinet和Server之间在完成一次请求后,两者之间就没有关系了。当Client再次请求Server时,Server不会识别这个Client。通俗点说就是,Server把每个HTTP请求都当做一次新的请求。如果Server想识别Client,就必须通过Cookie和Session配合来记录数据,比如加入购物车。
形象地理解Cookie和Session的更多相关文章
- 转:理解Cookie和Session机制
		
原文: 理解Cookie和Session机制 摘要: Cookie工作原理 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份.怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论 ...
 - 理解Cookie和Session机制
		
转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...
 - 为什么你学不会递归?告别递归,谈谈我的一些经验    关于集合中一些常考的知识点总结  .net辗转java系列(一)视野  彻底理解cookie,session,token
		
为什么你学不会递归?告别递归,谈谈我的一些经验 可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...
 - 基础知识《十二》一篇文章理解Cookie和Session
		
理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定 ...
 - 深入理解Cookie和Session机制
		
转载理解Cookie和Session机制 目录 Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片设置Cookie的所有属性Coo ...
 - 理解cookie,session,token
		
彻底理解cookie,session,token 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新 ...
 - [转帖]彻底理解cookie,session,token
		
彻底理解cookie,session,token https://www.cnblogs.com/moyand/p/9047978.html 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已 ...
 - 一文理解Cookie、Session
		
一文理解Cookie.Session 1.什么是会话 用户打开浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程就称为一个会话: HTTP 是无状态,有会话的 HTTP 是无 ...
 - 理解Cookie和Session机制(转)
		
目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...
 
随机推荐
- 深入浅出的webpack构建工具---PostCss(五)
			
一:PostCss是什么? PostCss是一个样式处理工具,它通过自定义的插件和工具生态体系来重新定义css.它鼓励开发者使用规范的css原生语法编写代码,然后配置编译器转换需要兼容的浏览器版本, ...
 - ztree树形菜单demo
			
阅读目录 zTree树形菜单 回到顶部 zTree树形菜单 树形菜单使用方式如下:HTML引入的方式如下: <!DOCTYPE html> <html> <head> ...
 - WEB安全 - 认识与防御XSS攻击
			
目录 什么是xss攻击? XSS的危害 XSS攻击分类 xss攻击示例 反射型攻击 - 前端URL参数解析 反射型攻击 - 后端URL参数解析 注入型攻击 - 留言评论 如何规避xss攻击? 总结 什 ...
 - docker被入侵后.............
			
服务器上线后,怎么发现总有个 xmrig 的容器在跑,删了还出来 那么恭喜你!!你的服务器已经被入侵了!! $ docker ps IMAGE COMMAND ...
 - Android6.0权限大全和权限分类
			
本文转载至: https://blog.csdn.net/qq_26440221/article/details/53097868 自从出了Android6.0权限管理之后,再也不能像以前那样粘贴复制 ...
 - sql实时提交事务
			
public void deleteByHbtlidAndDept(String class_id,String depart_id) { Session session = this.getHibe ...
 - LiveCharts文档-2FAQ
			
原文:LiveCharts文档-2FAQ LiveCharts文档-2FAQ 原文链接 LiveCharts基于的平台有WPF,UWP,WinForms:语言是C#, FAQ: 我怎么转换一个char ...
 - POJ1845
			
这还是一道综合了许多数论的知识点的,做完也涨了不少姿势 但还是因为约数和公式这个鬼东西去找了度娘 题意很简单,就是求\(A^B\)的约数之和\(mod\ 9901\). 但是这种题意越是简单的题目越是 ...
 - python语言程序设计7
			
1, 特么的打个空格出现就出现个点是个怎么回事, 昨天虽然是我复制的代码,,但也是我一点一点写出来的啊.. 复制的时候缩进直接就没了.我去 但是我感觉它一开始给我讲的一些基础理论又有点忘了,我希望你能 ...
 - [已解决]An unhandled exception occurred while processing the request.
			
An unhandled exception occurred while processing the request. InvalidOperationException: The layout ...