我在学习Nginx的时候认识的cookie和session,有什么不同?

简介: 我在学习Nginx的时候认识的cookie和session,有什么不同?

cookie是一种面向客户端存储机制

session是一种面向编程面向服务器的存储

首先要知道,他们两个机制不是两连的,他们都是分开的机制,不是使用cookic就必须有session,这是初学者的一个误区。

大家接触过http协议相关服务的应该会有更深入的理解

1.什么是cookie?

cookie它的核心功能就是存储,当我们浏览器去访问服务器的时候,会产生一定cookie来存储到本地,当我们再次去访问服务器的时候,就会带上我们的请求网站和cookie一同去发送给我们的服务器,并且在返回请求的时候,会告诉浏览器增加或者删除某些cookie内容


这里我们需要注意cookic的几点特性:

1.安全问题:浏览器存储cookie时是使用的明文来进行保存的,如果我们保存的一些重要信息,需要格外注意。
2.cookie的失效时间:如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止,如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.
3.cookie的存储空间:Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4K,因此不要用来保存数据集及其他大量数据.

2.什么是session?

session呢是一种基于服务器和客户端都要存储的一个唯一标志,也叫做session_id,当我们使用session机制时,会将信息来保存到服务器端同时也会生成一个session_id,也会在浏览器中生成一个session_id,它的作用时当浏览器再次访问服务器时会将客户端session_id发往服务器端,然后进行比对,这样浏览器就对拿到相对应的信息

专业来说就是我们客户端app是如何实现session的,这里一般没有cookie。app用户登陆后,服务器返回一个唯一ID,app储存起来,在每次请求服务器的时候,都带上这个ID,这样服务器接收到,就知道你是谁,然后做一些逻辑处理。

在我们生活中的例子:

比如我们在访问京东网页时,这时我们要登录才可以购买东西,我现在输入账号密码登录到京东后,此时我们的浏览器就会保存缓存和唯一标识符,服务器端也会保存缓存信息,叫做session,但是目前互联网人流较大,网络运营商都会采用多台服务器来进行做负载均衡,所以需要一个唯一标识符来作为标记,这样当一台具有session_id的浏览器来可以对应上它所保存的session缓存信息,这个唯一标识符叫做session-ID,这个就可以实现缓存功


3.相同点

1.cookie和session都是用来跟踪浏览器用户身份的会话方式。

2.都是为了缓存存储来提高网站速率


4.不同点(重点 面试中会遇到)

存储:cookie数据保存在客户端,session数据保存在服务端。

安全:cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

服务器性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

数据存储空间:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

信息重要程度:可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。


目录
相关文章
|
3月前
|
缓存 负载均衡 应用服务中间件
Nginx 学习
【10月更文挑战第17天】Nginx 是一款非常强大的工具,掌握它的使用和配置对于构建高性能、可靠的 Web 应用至关重要。随着技术的不断发展,Nginx 也在不断更新和完善,为我们提供更好的服务和支持。
|
19天前
|
存储 前端开发 Java
【SpringMVC】——Cookie和Session机制
获取URL中参数@PathVarible,上传文件@RequestPart,HttpServerlet(getCookies()方法,getAttribute方法,setAttribute方法,)HttpSession(getAttribute方法),@SessionAttribute
|
2月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
91 4
|
3月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
203 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
2月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
3月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
234 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
3月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
|
3月前
|
Kubernetes 监控 测试技术
k8s学习--基于Ingress-nginx实现灰度发布系统
k8s学习--基于Ingress-nginx实现灰度发布系统
157 2
k8s学习--基于Ingress-nginx实现灰度发布系统
|
3月前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
61 1
|
3月前
|
缓存 负载均衡 算法
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个通用的 TCP/UDP 代理服务器,以及一个邮件代理服务器和通用的 HTTP 缓存服务器。
200 0
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇