Cookie简介

Cookie(复数形态Cookies),中文名称为“小型文本文件”,指某些网站为了辨别用户身份或存储用户相关信息而存储在用户本地终端(Client Side)

上的数据(通常为加密数据)。比如用户ID、密码、浏览过的网页等。

Cookie特点:

  • 保存在客服端,一般由浏览器存储。
  • 通常加密存储,由于存储本地,难保证安全,所以不宜存敏感信息
  • 服务器决定保存的Cookie信息及时间。

说明:响应报文头中,有一个Set-Cookies域,用于指示浏览器或其他客户端,在本地保存Cookie信息

  • Cookie保存在客户端本地的目的是为了下次访问网站时,可以直接调取,上送服务器。

说明:请求报文中,有一个cookies域专门用于存放该信息,以便客户端发送Cookie信息给服务器。如下图所示:

Session简介

1.       为什么会出现session:

Cookies的工作机制是用户识别状态管理(比如保存用户的用户名、邮箱、地址等等),web网站为了管理用户的状态,通过web浏览器把一些数据,作为Cookies信息临时写入用户的计算机内,当用户再次访问web网站时,会将之前保存的Cookies(假如没有过期的话)取出来,发送给web网站,就实现了用户识别和状态管理。

这种机制的缺点:

  • 数据保存在客户端本地,不安全
  • 每次访问都要发送保存的Cookies数据,当网络访问量大的时候,会浪费网络带宽。

与Cookies不同的是,Session数据保存在服务端,一般存在服务器内存中。客户端与服务器通过一个SessionID来进行沟通,为了唯一,这个SessionID是一个32或48字节的随机字符串。

2.       SessionID的传送过程:

当客户端首次登录web系统后,web系统会通过响应报文,返回给客户端一个Key-Value格式的sessionID,当客户端第二次通过对web系统发起请求的时候,只要带上这个SessionID,web系统的服务端就能够通过这个SessionID在内存中找到这个客户端对应的客户信息和状态。

3.       SessionID缺点:

  • 内存消耗大。
  • 当web系统是多个节点的分布式系统时,需要做一些特殊设计和处理才能实现Session内容多节点的共享

Cookie和session的区别:

数据存储方式:

  1. Cookie数据保存在客户端浏览器中。
  2. Session数据保存在服务器内存中。

安全性:

  1. Session存储数据相对Cookie 存储数据更安全。

资源占用:

  1. Cookie 在网路访问量大时对网络带宽消耗较大。
  2. Session内存消耗较大,且在分布式系统中,要实现Session多节点共享比较麻烦。

Cookie和session工作原理示意图:

 

浅谈cookie和session的更多相关文章

  1. 浅谈cookie 和session 的区别

    具体来说 cookie 是保存在“客户端”的,而session是保存在“服务端”的 cookie 是通过扩展http协议实现的 cookie 主要包括 :名字,值,过期时间,路径和域: 如果cooki ...

  2. (进阶篇)浅谈COOKIE和SESSION关系和区别

    COOKIE介绍 cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PHP,您能够创建并取回 coo ...

  3. 浅谈cookie与session的区别

    cookie用的是在客户端保持状态的方案(它是在用户端的会话状态的存贮机制),前端也可以来设置他 所有浏览器都识别,并且会缓存在浏览器中. cookie是以key=value这种键值对的形式保存,每个 ...

  4. 浅谈cookie、session

    揭秘Cookie: cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是可 ...

  5. 浅谈Cookie、Session与Cache的区别

    以前实现数据的缓存有多种方法,如客户端的Cookie,服务器端的Session.Application. 一.Cookie Cookie是保存客户端的一组数据,主要用来保存用户的个人信息,主要存放浏览 ...

  6. 浅谈cookie 和 session

    一. cookie 定义:保存在浏览器本地上的一组组键值对 特点: 由服务器让浏览器进行设置的 浏览器保存在浏览器本地 下次访问时自动携带 应用: 登录 保存浏览习惯 简单的投票 使用cookie的原 ...

  7. 浅谈 cookie 和 session

    1.关闭浏览器后,session是否还存在? session在服务器和客户端各保留一个副本,关闭浏览器与否和session是否存在没有任何关系. session采取的是服务器端保持状态的方案,它存储在 ...

  8. 浅谈Cookie与Session技术

      一.什么是状态管理 将客户端与服务器之间多次交互当做一个整体来看,并且将多次交互所涉及的数据(状态)保存下来. 会话:当用户打开浏览器,访问多个WEB资源,然后关闭浏览器的过程,称之为一个会话,选 ...

  9. 浅谈cookie测试

    Cookie 提供了一种在Web 应用程序中存储用户特定信息的方法,例如存储用户的上次 访问时间等信息.假如不进行cookie存储一个网站的用户行为,那么可能会造成以下问题:用户进行购买几件商品转到结 ...

随机推荐

  1. C语言表达式和语句

    一.表达式 在C语言中,常量.变量.函数调用以及按C语言语法规则用运算符把运算数连接起来的式子都是合法的表达式 . 最后一类可以理解为运算符和运算对象的组合.例如: 算术表达式 = 算术运算符 + 运 ...

  2. session源码剖析

    session机制采用的是一种在客户端与服务端之间保持状态的解决方案,由于采用服务器端保持状态的方案在客户端也要保存标识,session机制也要借助于cookie机制达到目的.session保存了客户 ...

  3. 20175324王陈峤宇 《Java程序设计》第六周学习总结

    教材学习内容总结 第七章 一.内部类与外部类的关系 1.内部类可以使用外嵌类的成员变量和方法.2.类体中不可以声明类变量和类方法,外部类可以用内部类声明对象.3.内部类仅供外嵌类使用.4.类声明可以使 ...

  4. Java基础-对象与类

    面向对象程序设计概述 面向对象的程序设计(简称OOP)时当今主流的程序设计范型,已经取代了"结构化"过程化程序设计开发技术,Java是完全面向对象的. 类 类设计构造对象的模板或蓝 ...

  5. Conda命令指标

    一.Conda相关指令 # 查看当前环境下已安装的包 conda list # 查看某个指定环境的已安装包 conda list -n tensorflow # 查找package信息 conda s ...

  6. Javascript高级编程学习笔记(88)—— Canvas(5)绘制文本

    绘制文本 同样的,canvas也为绘制文本提供了相应的方法. 2D上下文提供的文本绘制方法主要有两个: fillText() strokeText() 这两个方法都接受四个参数 要绘制的文本字符串 绘 ...

  7. [Swift]LeetCode120. 三角形最小路径和 | Triangle

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  8. Python档案袋(异常与异常捕获 )

    无异常捕获 程序遇到异常会中断 print( xxx ) print("---- 完 -----") 得到结果为: 有异常捕获 程序遇到异常会进入异常处理,并继续执行下面程序 tr ...

  9. JVM基础系列第6讲:Java 虚拟机内存结构

    看到这里,我相信大家对于一个 Java 源文件是如何变成字节码文件,以及字节码文件的含义已经非常清楚了.那么接下来就是让 Java 虚拟机运行字节码文件,从而得出我们最终想要的结果了.在这个过程中,J ...

  10. WebApi使用cors配置跨域问题

    1.首先安装CORS,在WebApiCors项目上面使用Nuget搜索“microsoft.aspnet.webapi.cors”,安装第一个 2.当我们安装这个包之后,现有的packages目录下会 ...