浅谈cookie和session
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的区别:
数据存储方式:
- Cookie数据保存在客户端浏览器中。
- Session数据保存在服务器内存中。
安全性:
- Session存储数据相对Cookie 存储数据更安全。
资源占用:
- Cookie 在网路访问量大时对网络带宽消耗较大。
- Session内存消耗较大,且在分布式系统中,要实现Session多节点共享比较麻烦。
Cookie和session工作原理示意图:

浅谈cookie和session的更多相关文章
- 浅谈cookie 和session 的区别
具体来说 cookie 是保存在“客户端”的,而session是保存在“服务端”的 cookie 是通过扩展http协议实现的 cookie 主要包括 :名字,值,过期时间,路径和域: 如果cooki ...
- (进阶篇)浅谈COOKIE和SESSION关系和区别
COOKIE介绍 cookie 常用于识别用户.cookie 是服务器留在用户计算机中的小文件.每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie.通过 PHP,您能够创建并取回 coo ...
- 浅谈cookie与session的区别
cookie用的是在客户端保持状态的方案(它是在用户端的会话状态的存贮机制),前端也可以来设置他 所有浏览器都识别,并且会缓存在浏览器中. cookie是以key=value这种键值对的形式保存,每个 ...
- 浅谈cookie、session
揭秘Cookie: cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是可 ...
- 浅谈Cookie、Session与Cache的区别
以前实现数据的缓存有多种方法,如客户端的Cookie,服务器端的Session.Application. 一.Cookie Cookie是保存客户端的一组数据,主要用来保存用户的个人信息,主要存放浏览 ...
- 浅谈cookie 和 session
一. cookie 定义:保存在浏览器本地上的一组组键值对 特点: 由服务器让浏览器进行设置的 浏览器保存在浏览器本地 下次访问时自动携带 应用: 登录 保存浏览习惯 简单的投票 使用cookie的原 ...
- 浅谈 cookie 和 session
1.关闭浏览器后,session是否还存在? session在服务器和客户端各保留一个副本,关闭浏览器与否和session是否存在没有任何关系. session采取的是服务器端保持状态的方案,它存储在 ...
- 浅谈Cookie与Session技术
一.什么是状态管理 将客户端与服务器之间多次交互当做一个整体来看,并且将多次交互所涉及的数据(状态)保存下来. 会话:当用户打开浏览器,访问多个WEB资源,然后关闭浏览器的过程,称之为一个会话,选 ...
- 浅谈cookie测试
Cookie 提供了一种在Web 应用程序中存储用户特定信息的方法,例如存储用户的上次 访问时间等信息.假如不进行cookie存储一个网站的用户行为,那么可能会造成以下问题:用户进行购买几件商品转到结 ...
随机推荐
- ios开发中的深拷贝和浅拷贝
这是一个老生常谈的话题,面试中也经常被问到,下面总结一下自己的一些心得. 一句话总结: 浅拷贝就是指针拷贝: 深拷贝是对象本身的拷贝: 下面一张抽象的图可以直观的表述出两句话的内涵 其实这里还引申出了 ...
- mysql里的数据库引擎, 编码格式
针对数据库里即使设置了varchar类型的字段, 值输入中文报错的情况,是因为数据库的默认编码类型不支持汉字输入. utf-8 可以编译全球通用的所有语言符号. 由1-6个可变字节组成,有非常严格的排 ...
- node.js搭建Web服务器
Node.js 博客搭建 一. 学习需求 Node 的安装运行 会安装node,搭建node环境 会运行node. 基础模块的使用 Buffer:二进制数据处理模块 Event:事件模块 fs:文件系 ...
- 《JavaScript DOM编程艺术》学习笔记(三)
终于要完成这最后一部分了,距离第二部分已经过去五天了,一直想早点写的,但还是拖到今天了………… 34.position属性的和法制:static是position属性的默认值,意思是有关元素将按照它们 ...
- http://www.layui.com/doc/modules/laydate.html实时通信\日期、==插件
8520**ali chengyouli http://www.layui.com/doc/modules/laydate.html实时通信\日期.==插件
- Python公众号开发(二)—颜值检测
上篇文章,我们把自己的程序接入了微信公众号,并且能把用户发送的文本及图片文件原样返回.今天我们把用户的图片通过腾讯的AI平台分析后再返回给用户. 为了防止我的文章被到处转载,贴一下我的公众号[智能制造 ...
- [Swift]LeetCode249.群组偏移字符串 $ Group Shifted Strings
Given a string, we can "shift" each of its letter to its successive letter, for example: & ...
- [Swift]LeetCode317. 建筑物的最短距离 $ Shortest Distance from All Buildings
You want to build a house on an empty land which reaches all buildings in the shortest amount of dis ...
- [Swift]LeetCode417. 太平洋大西洋水流问题 | Pacific Atlantic Water Flow
Given an m x n matrix of non-negative integers representing the height of each unit cell in a contin ...
- [Swift]LeetCode1028. 从先序遍历还原二叉树 | Recover a Tree From Preorder Traversal
We run a preorder depth first search on the root of a binary tree. At each node in this traversal, w ...