我们在实际生活中总会遇到这种事情,我们一旦登录(首次输入username和password)某个站点之后,当我们再次訪问的时候(仅仅要不关闭浏览器),无需再次登录。而当我们在这个站点浏览一段时间后,它会产生我们浏览的记录,并且有的站点还提供购物车的功能。这些简单有用的功能就是通过Cookie与Session实现的。接下来。让我们一起探讨一下它们是怎样执行的。

1、概念

Cookie

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

Session

Session直接翻译成中文比較困难。一般都译成时域。在计算机专业术语中。Session是指一个终端用户与交互系统进行通信的时间间隔。通常指从注冊进入系统到注销退出系统之间所经过的时间。以及假设须要的话,可能还有一定的操作空间。

详细到Web中的Session指的就是用户在浏览某个站点时。从进入站点到关闭这个站点所经过的这段时间,也就是用户浏览这个站点所花费的时间。因此从上述的定义中我们能够看到,Session实际上是一个特定的时间概念。

须要注意的是,一个Session的概念须要包含特定的client,特定的server端以及不中断的操作时间。

A用户和Cserver建立连接时所处的Session同B用户和Cserver建立连接时所处的Session是两个不同的Session。

2、差别

1、cookie数据存放在客户的浏览器上,session数据放在server上
2、cookie不是非常安全,别人能够分析存放在本地的COOKIE并进行
3、session会在一定时间内保存在server上。当訪问增多,会比較占用你server的性能
4、单个cookie在client的限制是3K,就是说一个站点在client存放的COOKIE不能大于3K。

3执行机制

3.1、Cookie机制

在程序中,会话跟踪是非常重要的事情。

理论上,一个用户的全部请求操作都应该属于同一个会话,而还有一个用户的全部请求操作则应该属于还有一个会话。二者不能混淆。

比如,用户A在超市购买的不论什么商品都应该放在A的购物车内。不论是用户A什么时间购买的。这都是属于同一个会话的。不能放入用户B或用户C的购物车内。这不属于同一个会话。

而Web应用程序是使用HTTP协议数据传输的。HTTP协议是无状态的协议。一旦数据交换完成,client与server端的连接就会关闭,再次交换数据须要建立新的连接。

这就意味着server无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时server已经无法推断该购买行为是属于用户A的会话还是用户B的会话了。要跟踪该会话,必须引入一种机制。

Cookie就是这种一种机制。它能够弥补HTTP协议无状态的不足。在Session出现之前。基本上全部的站点都採用Cookie来跟踪会话。

由于HTTP是一种无状态的协议,server单从网络连接上无从知道客户身份。怎么办呢?就给client们颁发一个通行证吧,每人一个,不管谁訪问都必须携带自己通行证。这样server就能从通行证上确认客户身份了。这就是Cookie的工作原理。

Cookie实际上是一小段的文本信息。client请求server。假设server须要记录该用户状态,就使用response向client浏览器颁发一个Cookie。

client浏览器会把Cookie保存起来。

当浏览器再请求该站点时,浏览器把请求的网址连同该Cookie一同提交给server。server检查该Cookie。以此来辨认用户状态。server还能够依据须要改动Cookie的内容。

3.2 Session机制

除了使用Cookie,Web应用程序中还常常使用Session来记录client状态。

Session是server端使用的一种记录client状态的机制,使用上比Cookie简单一些,相应的也添加了server的存储压力。

client浏览器訪问server的时候,server把client信息以某种形式记录在server上。

这就是Session。client浏览器再次訪问时仅仅须要从该Session中查找该客户的状态就能够了。

假设说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查server上的“客户明细表”来确认客户身份。

Session相当于程序在server上建立的一份客户档案,客户来訪的时候仅仅须要查询客户档案表就能够了。

例如以下图所看到的。张三和李四分别訪问该站点,在服务端会产生两个SessionID来区分该用户,而在client将相应的SessionID存放在Cookie中。以便我们再次訪问时得到我们所需的资源。

4总结

这里。我们将cookie跟session简介了一下,至于实际应用还须要我们在做项目中慢慢体会,比如,怎样控制他们的生命周期,有效期等等。并且session和cookie是我们必须要掌握的技术。由于我们要常常使用它来进行消息的传递与验证。并且它们还应用在权限控制,单点登录等技术。不管怎么说。我们都应该重视这种简单常常使用的小技能。

转载于:https://www.cnblogs.com/wzzkaifa/p/7364595.html

前端页面——Cookie与Session有什么差别相关推荐

  1. 前端页面——Cookie与Session有什么区别

    我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录.而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录, ...

  2. Web页面或app等前端页面之Java Web的JSP、Servlet、Cookie、Session等技术小结

    Java Web学习,掌握JSP.Servlet.Cookie.Session等内容,使用JSTL进行数据展示完成实际应用. 2.3.1 XML基础 XML的用途.语法规则.语义约束.如何解析XML, ...

  3. Servlet学习DAY_02:重定向/ 文件上传/ Cookie和Session/ 导入一个工程 / 配置欢迎页面 / 同步请求和异步请求/JSON和AJax介绍 /过滤器

    重定向 重定向是服务器告诉客户端往指定的路径再次发出请求的指令 执行过程: 当服务器执行重定向方法时会给客户端返回302状态码和一个请求路径,浏览器接收到302后会立即往指定的路径再次发出请求 res ...

  4. 前端鉴权必须了解的 5 个兄弟:cookie、session、token、jwt、单点登录

    编辑:前端妹 | 来源:HenryLulu_几木 链接:juejin.cn/post/6898630134530752520 本文你将看到: 基于 HTTP 的前端鉴权背景 cookie 为什么是最方 ...

  5. jquery页面跳转带cookie_python socket编程:实现redirect函数、cookie和session

    在Flask框架中有一个redirect函数,用于实现页面的跳转,现在我们来实现它.原理就是:当浏览器接受到服务器响应的状态码是301或者302时,表示请求的页面已经永久或临时性转移到了新的位置,而这 ...

  6. Linux网络:HTTP协议 | URL | 协议格式 | HTTP方法 | HTTP状态码 | Cookie与Session

    文章目录 网络计算器 服务端 客户端 HTTP协议 认识URL 协议方案名 登录信息 服务器地址.端口号 带有层次的文件路径 查询字符串 片段标识符 urlencode和urldecode HTTP协 ...

  7. cookie、session以及token的定义、区别、使用环境

    Cookie Cookie 的工作原理 由于 HTTP 是一种无状态的协议,服务器单从网络连接上无从知道客户身份.怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证,这样 ...

  8. layui前端页面table表格怎么格式化转换时间_前端开发面经知识点总结

    HTTP,HTML,浏览器 1.说一下http和https 2.tcp三次握手,一句话概括 3.TCP和UDP的区别 4.WebSocket的实现和应用 6. 一个图片url访问后直接下载怎样实现? ...

  9. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

  10. Web框架之Django_08 重要组件(form组件、cookie和session组件)

    阅读目录 一.form组件 二.cookie与session Django中操作Cookie 摘要: form组件 cookie组件 session组件 一.form组件 form介绍 我们之前在ht ...

最新文章

  1. php 61850,南瑞内部61850培训教程很好很强大-系统集成文档类资源
  2. App项目内存优化计划
  3. 【错误记录】Ubuntu 安装软件报错 ( Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource tempora )
  4. 常考数据结构与算法:删除链表的倒数第n个节点
  5. 爱与家庭,魔兽世界怀旧父亲为儿子打造精致音乐盒,满满的都是爱
  6. hdu 2047(递推)
  7. 一个透明的shader
  8. mac 下基于firebreath 开发多浏览器支持的浏览器插件
  9. OpenMMLab的新篇章
  10. Workflow WF Reference Links for 2009-03-06
  11. STM32硬件SPI时钟频率与时钟解析(基于逻辑分析仪的抓包试验)
  12. 产品经理 | 职业选择及面试技巧
  13. 深度学习图片分类实战学习
  14. CAD图纸打印文字显示空心怎么办?
  15. android 双卡铃声,铃声多多双卡版
  16. n9_Adding Interactivity Animating Plots_BeautifulSoup_Interactive backends_Tkinter_Plot.ly_FFmpeg
  17. FileUploadException: Header section has more than 10240 bytes (maybe it is not properly terminated)]
  18. 微软 2020 财年营收突破 1 万亿人民币、净利润 3099 亿元
  19. 艾美捷低内毒素CpG ODN寡聚脱氧核苷酸全家族系列
  20. 记录安装Ubuntu Server 17.04, 安装hwinfo 失败的解决办法

热门文章

  1. VB.NET和C#的比较
  2. 2个Python入门级的实战项目
  3. 【最新教程】Pytorch还是Tensorflow超强两大框架实战
  4. 一张思维导图带你快速了解深度学习推荐系统
  5. 【小样本·多分类】如何解决「小样本」+「多分类」问题?
  6. 推一个知乎学弱猹的公众号
  7. seaborn—seaborn.regplot绘制线性回归拟合图
  8. TF2.0—tf.keras.layers.GaussianNoise
  9. 《流畅的Python》读书笔记——Python一等函数
  10. 人生就是一次Presentation