2022-cookie与session的区别(面试重点)

简介: 2022-cookie与session的区别(面试重点)

目录

1.cookie与session的区别(面试必备)

2.cookie简介

3.Cookie的作用

4.Cookie的缺陷:

5.Cookie的工作原理

6.Session简介

7.Session作用

8.Session的工作原理

1.cookie与session的区别(面试必备)

存放位置不同

cookie保存在客户端,

session保存在服务端

存取方式不同

cookie只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。

session中能够存取任何类型的数据

安全性不同

cookie存储在浏览器中,对客户端是可见的,客户端的一些程序可能会窥探、复制以至修改cookie中的内容。

session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。

2.cookie简介

HTTP是一个基于请求与响应,无状态的,应用层协议。

无状态:服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。

Cookie:网站为了辨别用户身份,存储在用户本地终端上的数据,Cookie是由服务端生成的,发送给客户端(通常是浏览器)的。

Cookie总是保存在客户端中,按在客户端中存储位置,可分为内存Cookie和硬盘Cookie。

内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。

硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其才能在时间是长期的。

3.Cookie的作用

Cookie的根本作用就是在客户端存储用户访问网站的一些信息。

1.记住密码,下次自动登录。

2.购物车功能。

3.记录用户浏览数据,进行商品(广告)推荐。

4.Cookie的缺陷:

1.Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。

2.由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题。(除非用HTTPS)

3.Cookie的大小限制在4KB左右。对于复杂的存储需求来说是不够用的。

5.Cookie的工作原理

1.创建Cookie

用户浏览网站,网站服务器生成唯一识别码(cookie id),默认一般是会话级别的cookie,存储在浏览器内存中,将cookie放入到http响应报头,将cookie插入到一个Set-Cookie HTTP响应报头中。

2.设置存储cookie

浏览器收到该响应报文后,根据报文里的Set-Cookie特殊的指示,生成相应的Cookie,保存在客户端。该Cookie里面记录这用户当前的信息。

3.发送cookie

用户再次访问网站时,浏览器首先检查所有存储的Cookies,如果存在某个网站的Cookie,则把该Cookie附加在请求资源的HTTP请求头上发送给服务器。

4.读取cookie

服务器接收到用户的HTTP请求报文之后,从报文头获取到该用户的Cookie,从里面找到所需要的东西。

6.Session简介

Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以是时断时续的。Session是一种服务器端的机制,Session对象用来存储特定用户会话所需的信息。

Session由服务端生成,保存在服器的内存、缓存、硬盘或数据库中。

7.Session作用

Session的根本作用是在服务端存储用户和服务器会话的一些信息。

1.判断用户是否登录

2.购物车功能

8.Session的工作原理

当用户访问到一个服务器,如果服务器启用Session,服务器就要为该用户创建一个Session,并非生成一个于此Session相关的Session,这个Session ID 是唯一的、不重复的字符串,这个Session将被在本次响应中返回到客户端保存,而保存这个Session ID的正是Cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。

相关文章
|
11天前
|
Go 调度 开发者
[go 面试] 深入理解进程、线程和协程的概念及区别
[go 面试] 深入理解进程、线程和协程的概念及区别
|
11天前
|
并行计算 数据挖掘 大数据
[go 面试] 并行与并发的区别及应用场景解析
[go 面试] 并行与并发的区别及应用场景解析
|
5天前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
5天前
|
存储 安全 Java
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
这篇文章是关于Java面试的第二天笔记,涵盖了HashMap与HashTable的区别、ConcurrentHashMap的实现原理、IOC容器的实现方法、字节码的概念和作用、Java类加载器的类型、双亲委派模型、Java异常体系、GC如何判断对象可回收、线程的生命周期及状态,以及sleep、wait、join、yield的区别等十道面试题。
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
|
6天前
|
存储 JSON JavaScript
震撼!Cookie、Session、Token、JWT 终极对决:揭开 Web 认证的神秘面纱!
【8月更文挑战第13天】Web 开发中,Cookie、Session、Token 和 JWT 常混淆。Cookie 是服务器给客户端的小信息片,如登录状态,每次请求都会返回。Session 则是服务器存储的用户数据,通过 Session ID 追踪。Token 类似通行证,证明客户端身份且可加密。JWT 是结构化的 Token,含头部、载荷及签名,确保数据完整性和安全性。
19 4
|
5天前
|
存储 关系型数据库 MySQL
一天五道Java面试题----第八天(怎么处理慢查询--------->简述Myisam和innodb的区别)
这篇文章是关于Java面试中关于数据库性能优化和MySQL特性的五个问题,包括处理慢查询、ACID特性保证、MVCC概念、MySQL主从同步原理以及MyISAM和InnoDB存储引擎的区别。
|
13天前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
28 4
|
7天前
Error unprotecting the session cookie.The key {...} was not found in the key ring.
Error unprotecting the session cookie.The key {...} was not found in the key ring.
17 0
|
7天前
Error unprotecting the session cookie.The payload was invalid.
Error unprotecting the session cookie.The payload was invalid.
23 0
|
10天前
|
Java 调度
搞清楚wait、sleep、join、yield四者区别,面试官直接被征服!
掌握上述多线程控制方法的运用,可以在Java多线程程序编写中进行更加深入的线程管理,确保程序运行更加高效、稳定。在面试中准确并熟练地讲解这些概念,确实有可能让面试官对你的专业能力留下深刻印象。
17 0