关于Cookie要懂的知识
什么是Cookie?
http是一个无状态协议,它不对之前发生过的请求和响应的状态进行管理。这样就可能导致,我们登陆一个网站后,每次跳转新页面,之前的登陆状态都不能被记住,要重新登陆等问题。
因此,Cookie技术被引入了。
Cookie是存储在浏览器端的文本数据,单个大小不超过4kb。它通过在请求和响应数据中写入Cookie信息,对客户端的状态进行记录。
【Cookie机制的基本原理】
Cookie会根据从服务器端发送的响应报文内的一个叫Set-Cookie的首部字段信息,通知客户端保存Cookie。当客户端第二次访问该服务器时会自动的将该Cookie回传给服务器,来实现用户状态的跟踪。
Cookie的作用和特性?
利用cookie记录状态我们可以实现自动登录、显示近期访问、跟踪上次访问时间、身份验证等功能。
不过,这种状态记录不是永久的。我们有时候可能会发现,自己一直登陆状态开着网页,一段时间回来再想访问新页面,又回跳出登陆窗口。这是因为Cookie是有有效期的。
Cookie的有效期可分为会话性和持久性:
【会话性】Cookie仅会保存在客户端的内存中,关闭客户端时,cookie失效
【持久性】cookie会保存在用户的硬盘中,生存期结束或用户主动销毁时失效(我们可以认为设置cookie的有效时间)
Cookie和Session
Session机制也是用来解决http无状态的问题,可以识别用户。区别是:
Cookie数据存储在客户端浏览器上,而Session数据存储在服务器上,且通常需要Cookie机制来辅助实现。
类比一下:
你在理发店办了张卡。你的卡有个编号01,那理发店后台也会有一个对应的编号,对应你这个客户。这样下次你刷卡时,理发店一刷后台就能查到你是谁,卡里余额等信息啦~
这个场景里的“卡”就像Cookie,而理发店后台的编号可以理解为Session id,你卡的信息存在了理发店后台,这个机制就像Session。
Session数据存在服务器的优点在于,就是换了客户端,服务器记录的信息还是会存在的。比如我们加进购物车的商品,在不同客户端都能看到。
关于Cookie要懂的知识的更多相关文章
- WEB架构师成长之路-架构师都要懂哪些知识 转
Web架构师究竟都要学些什么?具备哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求. 总结起来大概有下面几点技能要求: 一. 架构师有 ...
- WEB架构师成长之路之三-架构师都要懂哪些知识
Web架构师究竟都要学些什么?具备哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求. 总结起来大概有下面几点技能要求: 一. 架构师有 ...
- 【一起来烧脑】读懂HTTP知识体系
背景 读懂HTTP很重要,参加过面试的小伙伴都很清楚,无论是技术面试面试题出得怎样,都有机会让你讲解一下HTTP,大部分都会问一下. 面试官:考考你网络协议的知识,TCP协议和UDP协议的区别,HTT ...
- 【一起来烧脑】读懂Promise知识体系
知识体系 Promise基础语法,如何处理错误,简单介绍异步函数 内容 错误处理的两种方式: reject('错误信息').then(null, message => {}) throw new ...
- cookie和session基础知识学习
一.session的简单使用 session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象.session的使用步骤: 获取session对象使用session ...
- C语言的预编译,程序员必须懂的知识!【预编译指令】【预编译过程】
由“源代码”到“可执行文件”的过程包括四个步骤:预编译.编译.汇编.链接.所以,首先就应该清楚的首要问题就是:预编译只是对程序的文本起作用,换句话说就是,预编译阶段仅仅对源代码的单词进行变换,而不是对 ...
- 【一起来烧脑】读懂WebApp知识体系
背景 很多小白知道什么是app,但是却不知道什么是webapp呢,webapp是指用HTML5编写的移动web应用 一个webapp可以在pc端,Android端,ios端进行运行 webapp开发的 ...
- 【一起来烧脑】读懂JQuery知识体系
背景 在现在就业的过程中,会运用JQuery是你的加分项,那么什么是JQuery,嗯,jquery是JavaScript的函数库,是一种轻量级的JavaScript库,写得少,做的多,导致jQuery ...
- 一文搞懂网络知识,IP、子网掩码、网关、DNS、端口号
网络的基本概念 客户端:应用 C/S(客户端/服务器) B/S(浏览器/服务器) 服务器:为客户端提供服务.数据.资源的机器 请求:客户端向服务器索取数据 响应:服务器对客户端请求作出反应,一般是返回 ...
- 该懂的知识-CPU
进程也好,线程也好,最后都是转换成CPU指令由CPU执行的,所有的CPU指令都需要执行时间,多一个CP,就能够同时执行很多指令.不论如何模拟,最终CPU指令都必须在某一个内核上执行. CPU的工作是不 ...
随机推荐
- springboot[2.3.4.RELEASE]application.properties常用配置
常用配置 spring.profiles.active=@spring.profiles.active@ pom文件中定义的配置文件 server.port=8080 web默认访问端口 server ...
- JS笔记(四):面向对象、异常处理
镇楼图 Pixiv:torino 六.JS中的面向对象 类(class) 博主视为你已拥有相关基础,这里不再赘述相关概念 类的语法如下,class在本质上是function,可以说class只是针对构 ...
- Javaheima12
Java 不可变集合 如果某个数据不能修改,把它防御性地拷贝到不可变集合红是个很好的实践 或者当集合对象被不可信的库调用时,不可变形式是安全的 创建 再List,Set,Map接口中,都存在of方法, ...
- linux-taglist
vim 变量.函数索引 1. sudo dnf install vim-taglist 2. 下载taglist, https://www.vim.org/scripts/script.php?scr ...
- Hadoop之HDFS优缺点、设计原理、框架
如需大数据开发整套视频(hadoop\hive\hbase\flume\sqoop\kafka\zookeeper\presto\spark):请联系QQ:1974983704 Hadoop的前世今 ...
- lisp入门资料收集
1.一些文档 http://acl.readthedocs.io/en/latest/zhCN/index.html http://daiyuwen.freeshell.org/gb/lisp.htm ...
- This class is not trusted to be serialized as ObjectMessage payload.ActiveMQ序列化设置
引子 ObjectMessage引入的生产者和消费者之间的类路径耦合,ActiveMQ支持他们作为JMS规范的一部分. ObjectMessage对象依赖marshal/unmarshal进行java ...
- 阿里云CentOS7 下部属nginx+uwsgi+python3+django
安装依赖包 yum -y groupinstall "Development tools" yum install openssl-devel bzip2-devel expat- ...
- Promise async await的用法实例一枚
getlog2() { console.log("222"); }, getlog3() { return new Promise((resolve, reject) => ...
- docker方式部署的gitlab跨版本迁移升级
之前代码服务器用的 beginor/gitlab-ce:11.3.0-ce.0 的版本,而当前时间已经到12.4.1了. gitlab 官方已经开始支持多语言, 而且也提供了 docker 镜像, b ...