[网络原理] 详解Cookie与Session

news/2024/4/19 4:35:28/文章来源:https://blog.csdn.net/scsery/article/details/130322651

做好准备,迎接所有的成功吧

文章目录

  • 1. Cookie的概念
  • 2. Session的概念
  • 3. Cookie与Session的关联与区别
    • 3.1 关联
    • 3.2 区别
  • 4. Cookie与Session中的核心方法



1. Cookie的概念

Cookie是用户首次登陆网站成功之后,对应页面的服务器会返回给用户一个身份标识,被保存在用户主机的硬盘中.
在之后发给服务器的请求中,这个Cookie会写在请求的Header中,这样,服务器就可以知道是哪位用户,以及用户请求的是哪个服务.
如下图,是客户端向bilibili服务器发起的一次请求,Header中最后一行为用户的Cookie.
在这里插入图片描述

2. Session的概念

用户首次登录网站或者手机app,对应商家的服务器会保存用户的身份信息,并且会给这个用户分配一个SessionId进行身份标识(这个ID可以是数字或者字符串),这个ID是唯一的.服务器会把身份信息与Session作为一对键值对以Hash的形式存储.
用户下次登陆时,服务器会根据用户的SessionId,来找到用户身份信息,判断是否用户信息是否正确.

3. Cookie与Session的关联与区别

3.1 关联

在登陆网站时,需要二者配合使用,如下图,是登录bilibili网站的过程.登陆时,需要先给用户分配一个SessionId,在之后的请求中,会在Cookie里写入身份信息.
在这里插入图片描述

3.2 区别

  1. Session是服务器的存储机制,服务器将SessionId和对应的身份信息保存在数据库里.而Cookie是客户端的存储机制,存储在用户主机硬盘中.
  2. Cookie可以单独使用,Cookie与浏览器强相关,当某些网站不需要登录,就不需要Session.
  3. Session可以单独使用,当使用手机上需要登陆的app,就不需要搭配Cookie使用.
  4. Cookie属于Http协议中的一部分,而Session与Http无关.
  5. Session专门用来存储用户的身份信息,而Cookie可以存储其他信息.

4. Cookie与Session中的核心方法

下面这个方法是在查询用户的登陆状态,看session是否为空,若为空,则为用户创建一个HttpSession对象,构造唯一的SessionId,插入哈希表,存进数据库.

HttpSession session = req.getSession(true);

下面这个方法,是用户登录,查询session为空时,不会自动创建Session会话,而是自动跳转到登陆页面.

		HttpSession session = req.getSession(false);if (session == null) {// 未登录状态System.out.println("用户未登录!");resp.sendRedirect("login.html");return;}

session.getAttribute(),是添加用户身份信息的方法,.如下图所示,键值对中,Session唯一,但对应的value不唯一,可以存姓名,年龄等多个信息.

String username = (String) session.getAttribute("username");

在这里插入图片描述
下面这个方法,可以查看Cookie中的所有键值对.

Cookie[]  = session.getCookies();

本文完

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_102813.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶方案及相关对标

华为: 2021年4月18日,在华为智能汽车解决方案BU新品发布会上,华为智能汽车解决方案BU总裁王军表示,华为要持续加大对汽车行业的投入,今年在研发上的投资将达到10亿美元,未来每年保持30%左右增长&#xff0…

工程化:vite4+vue3里面的less预处理的mixin,when和伪元素的使用研究

本文的起因 项目的重构,之前的语法是scss,新项目选型选的less,两种基本的使用是差不多的,细节方面有很大的差异,今天拎出来重点的细说。。。 区别 *.scss *.less mixin .bg-dp(@number: 0) {

一文讲清莱迪斯 LCMXO2-4000HC-4BG256I 可编程逻辑FPGA 特性及运用领域

一文讲清lattice莱迪斯深力科 LCMXO2-4000HC-4BG256I 可编程逻辑FPGA 特性及运用领域 适用于低成本的复杂系统控制和视频接口设计开发,满足了通信、计算、工业、消费电子和医疗市场所需的系统控制和接口应用。 瞬时启动,迅速实现控制——启动时间小于1m…

AI数字人产品“世优BOTA”发布会落幕,世优科技纪智辉演讲回顾

4月20日,世优科技式发布了新一代AI数字人产品——“世优BOTA”。在会上,世优科技创始人纪智辉介绍了数字人技术、驱动形式、数字人应用、“世优BOTA”的前世今生及未来。 以下是纪智辉的演讲内容概要: 各位嘉宾、各位朋友:大家下…

【 Spring Mybatis 复杂的查询操作 】

文章目录 引言一、参数占位符 #{} 和 ${}二、SQL 注入三、like 模糊查询四、返回类型:resultType 和 resultMap五、多表查询 引言 前面我们已经学会了使用 Mybatis 进行增,删,改操作,也实现了简单的查询操作 !下面我们…

mysql主从复制搭建--待实践完善

一、什么是mysql主从复制 参考链接:MySQL主从介绍_rain_yunlx的博客-CSDN博客 Linux下搭建Mysql主从复制详细步骤(Mysql版本5.7.35)_linuxmysql主从_Direct_的博客-CSDN博客 Linux环境MySQL数据库主从复制保姆级教程_linux主从复制_小学生…

【SWAT水文模型】ArcSWAT输入准备:土地利用/土壤/气象数据

ArcSWAT输入准备:土地利用/土壤/气象数据 1 土地利用数据的处理1.1 数据下载 2 土壤库建立2.1 数据下载 3 气象数据库参考 1 土地利用数据的处理 1.1 数据下载 下载地址如下: 中科院1km土地利用数据 清华大学高精度土地利用数据 2 土壤库建立 SW…

如何将pdf图片文字转换成word 文字word图片怎么转换pdf

如今大家在工作中常常会运用到电脑来办公,电脑的运用大大提高了我们的工作效率,在带来机会的同时同样也带来了新挑战。 pdf图片怎么转换成word文档?PDF格式是一种常用的文档格式,它可以保持文档内容和格式的完整性,但是…

【UE】制作简单的山脉地形

在上一篇博客中(【UE】使用Quixel Bridge下载免费贴图),介绍了如何下载免费贴图,本篇博客介绍如何使用这些贴图制作地形贴图。 1. 创建地形 2. 用雕刻工具绘制地形 3. 新建两个材质函数,分别命名为“GrassAuto”、“R…

离散数学期末复习第一章 数理逻辑

离散数学 离散数学是研究各种各样的离散量的结构及离散量之间的关系一门学科,是计算机科学中基础理论的核心课程。 什么是连续变量? 在一定区间内可以任意取值的变量叫连续变量,其数值是连续不断的,相邻两个数值可作无限分割&a…

在线问诊小程序系统方案以及价值

方案价值zlzwgz0127 1.扩大医院流量 a.预约到院 在线展示专家的介绍,更能彰显实力,吸引患者来院就医, 用户可选择在线问诊和预约到院 b.社区团购导流 与我们合作社区团购给医院的体检产品导流 c.专家直播导流 通过专家直播吸引潜在患者…

观察者设计模式(Observer Design Pattern)[论点:概念、组成角色、相关图示、示例代码、框架中的运用、适用场景]

文章目录 概念组成角色相关图示示例代码框架中的运用适用场景 概念 观察者设计模式(Observer Design Pattern)是一种行为型设计模式,它定义了一种对象间的一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当…

机器学习 Rider数据集分析和预测

介绍数据集 ride_id:乘车ID rideable_type:乘车类型 started_at:开始日期 ended_at :结束日期 start_station_name:开始站的名字 start_station_id:开始站的ID end_station_name:结束站的名字 …

内网渗透之横向移动rdpwinrmwinrsspnkerberos

0x00 准备 环境:god.org cs上线 win2008web 提权利用ms14-058 抓取hash和明文密码(当获取到其他主机就重复提权和抓取密码) 扫描存活主机,扫描端口 代理转发-转发上线,生成反向连接木马,绑定监听器,上传至web根目录(方…

中小企业真的需要CRM吗?

如果你的企业没有CRM客户关系管理系统,企业主需要问问自己,他们将利用什么来扩展业务。福布斯进行的研究恰当地表明,充分利用CRM系统的企业可以将销售额提高29%。 中小企业定期产生大量客户,这可能会难以管理。这正是CRM系统在有…

《编码——隐藏在计算机软硬件背后的语言》精炼——第12章(二进制加法器)

“I hear and I forget. I see and I remember. I do and I understand”——Confucius 人类计算二进制数的方法 我们先计算本位的结果,称为加法位;再计算是否进位,称为进位位。 搭建二进制加法器 我们用逻辑门来搭建二进制加法器。它的思想…

高可用消息服务消息一致、可靠性、链路稳定性核心关注点

面临的问题 初期业务主要的场景是直播间的群聊消息以及一小部分的单聊消息。由于是教育场景,所以业务在划分聊天室的时候是以班级为单位进行划分的,假设每个聊天室的人数为500人。 问题一:用户的维护 直播场景的群聊与微信等常见的群聊在用…

OpenPCDet复现过程记录

0、前言 OpenPCDet项目之前我就复现过,一个很优秀的项目,这几天又需要用到这个项目,再次复现遇到了不少问题,特此记录复现的流程 1、环境准备 1.1、前置条件 以下是我安装的版本 CUDA 11.3CUDNN 8.2.1 CUDA和CUDNN安装可以参考…

61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

文章目录 61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户61.1 创建用户示例 61.2 查看用户示例 61.3 修改用户61.3.1 修改用户名61.3.2 修改用户示例61.3.3 修改用户密码61.3.4 修改用户密码示例 61.4 删除用户示例 61.5 用户授权示例 61.6 删除用户权限示例 61…

c实例练习笔记(拓展)

本博文参考题目的地址看右边----》C技能树 我跟你说!!!!!c语言有bool类型!!!!!你是不是百度跟你说没有只有c才有? 是有的!&#xf…