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存储一个网站的用户行为,那么可能会造成以下问题:用户进行购买几件商品转到结 ...
随机推荐
-
Spark(3) - External Data Source
Introduction Spark provides a unified runtime for big data. HDFS, which is Hadoop's filesystem, is t ...
-
SQL分组查询group by
注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里. 1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 group ...
-
HDU4712-----Hamming Distance------超级大水题
本文出自:http://blog.csdn.net/dr5459 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4712 题目意思: 海明距离:任意两个 ...
-
【读书笔记】-- 你不知道的JavaScript
<你不知道的JavaScript>是一个不错的JavaScript系列书,书名可能有些标题党的意思,但实符其名,很多地方会让你有耳目一新的感觉. 1.typeof null === &qu ...
-
linux之vi编辑器的基础命令
1,假如要在这个php文件的phpinfo.php;之后加入一行,我们可以先按键盘的"a",光标就会跳转到之前绿色光标之后,也就是说,"a"是代表在当前光标之后 ...
-
序列化与反序列化中serialVersionUID的作用(通俗易懂)
serialVersionUID:字面意思上是序列化的版本号,这个在刚刚接触java编程时,学序列化大家一般都不会注意到,在你一个类序列化后除非你强制去掉了myeclipse中warning的功能,在 ...
-
spring boot 与servlet
servlet: 基于java的web组件,用于生成动态内容,由容器管理. 类似其他java技术组件,由平台无关的java类组成,并且由java web服务器加载执行 serv ...
-
30. Spring Boot ActiveMQ
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
-
BZOJ2213[Poi2011]Difference——DP
题目描述 A word consisting of lower-case letters of the English alphabet ('a'-'z') is given. We would li ...
-
open中的mode
[open中的mode] 当使用O_CREAT标志的open来创建文件时,我们必须使用三个参数格式的open调用.第三个参数mode 是几个标志按位OR后得到的.他们是: S_IRUSR: 读权限,文 ...