首页 > 其他分享 >Cookie和Session详解

Cookie和Session详解

时间:2023-07-27 20:24:51浏览次数:37  
标签:浏览器 用户 Session Cookie 服务器 详解 客户端

二者的作用


Cookie是存在于客户端的“客户通行证”。
Session是存在于服务端的“客户档案表”。

二者的作用都是跟踪用户的整个会话。


Cookie:

产生的缘由:
一个用户的所有请求操作对应一个会话,另一个用户则对应另一个会话,但是由于HTTP协议的无状态特性,服务器无法单从连接上跟踪到会话。
来源:
服务端response向客户端浏览器颁发Cookie,存储在客户端的浏览器中。
作用:
当浏览器再次请求该网站时,浏览器把url+Cookie提交给服务器,在服务端进行验证。
性质:
不可跨域 (域名不同的两站点,互不干涉彼此的Cookie)
编码方式:
BASE64(保存二进制图片);Unicode(保存中文UTF-8)
重要属性:
name       Cookie名称
value        Cookie值
maxAge   Cookie失效时间(如果为0,即为删除cookie)
secure      是否仅被使用安全协议传输,HTTPS、SSL
path         Cookie的作用路径
domain    可以访问该Cookie的域名
记住密码的实现思路:
账号按一定规则加密后,连同账号一起保存到Cookie,下次访问时只需判断账号加密规则是否正确即可。

Session:

服务端使用的记录客户端状态的机制。Session相当于在服务器上建立的一份客户档案表。
生命周期:
Session在用户第一次访问浏览器时自动创建,只要用户访问,服务器就会更新Session最后访问时间。

浏览器中新开的窗口会生成新的Session,但子窗口除外,子窗口共用父窗口的Session。

客户端如果不支持cookie怎么办?

URL地址重写:将用户的session id信息重写到URL地址中,服务器解析重写后的URL,获取Session id。

会话完整流程:
  1. 用户输入登录信息。
  2. 服务器验证信息,并创建Session,存储到数据库(Redis)。
  3. 服务器为用户生成Session id,将带有Session id的Cookie放在用户浏览器。
  4. 续请求中,根据数据库验证Session id ,有效则接受。
  5. 注销,会话在服务器和客户端都被销毁。
免责声明
本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除。原文作者:Snippers   原文来源:CSDN

标签:浏览器,用户,Session,Cookie,服务器,详解,客户端
From: https://www.cnblogs.com/dytydykyjy666666/p/17585909.html

相关文章

  • Redis持久化机制 RDB、AOF、混合持久化详解!如何选择?
    本文已经收录进JavaGuide(「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。)Redis持久化机制属于后端面试超高频的面试知识点,老生常谈了,需要重点花时间掌握。即使不是准备面试,日常开发也是需要经常用到的。最近抽空对之前写的Redis持久化机制进行了......
  • ASP.NET Core 使用 Claim 认证详解
    微软在早期.NETFramework时代,针对ASP.NET的用户登录身份认证,提供了Forms认证实现方案。后来在推出ASP.NETCore之后,采用Claim认证替代了Forms认证,两者本质上都是基于Cookie加解密的认证方式,学习和使用起来非常简单,比较适合在小型项目中使用,主要是方便。假设我们现......
  • Golang中结构体映射mapstructure库深入详解
    mapstructure用于将通用的map[string]interface{}解码到对应的 Go 结构体中,或者执行相反的操作。很多时候,解析来自多种源头的数据流时,我们一般事先并不知道他们对应的具体类型。只有读取到一些字段之后才能做出判断 +目录在数据传递时,需要先编解码;常用的方式是JSON编解码......
  • C#中(&&,||)与(&,|)的区别详解
    对于(&&,||),运算的对象是逻辑值,也就是True/False&&相当与中文的并且,||相当于中文的或者。(叫做逻辑运算符又叫短路运算符)运算结果只有下列四种情况。True&&True=True(左边为true,再验证右边也为true,返回结果true)假如这是一个查询条件,则执行。True&&False=False......
  • Kafka集群数据同步 MirrorMaker详解
    1、什么是MirrorMaker?MirrorMaker是Kafka附带的一个用于在Kafka集群之间制作镜像数据的工具。该工具主要作用是从源集群中消费并生产到目标集群。一个集群可以启动多个MirrorMaker配置到多个Kafka集群;2、如果想在Kafka测试集群,同步线的Kafka数据,做测试使用1、在测试集群配置mi......
  • Java方法详解
    Java方法详解什么是方法-System.out.println(),那么她是什么?-Java方法是语句的集合,它们在一起执行一个功能1方法是解决一类问题的步骤的有序组合2方法包含于类或对象中3方法在程序中被创建,在其他地方被引用-设计方法的原则:方法的本意是功能......
  • GDB详解
    GDB调试启动gdb调试的方法一般有三种方式:gdbfilenamegdbattachpidgdbfilenamecorename方法一直接调试目标程序gdbfilenamefilename就是需要启动调试的程序文件名,直接gdb启动一个程序进行调试,也就是说这个程序还没有启动。方法二附加进程gdbattachpid一个程......
  • java session 关闭页面 失效
    JavaSession关闭页面失效1.流程图以下是实现JavaSession关闭页面失效的流程图:![流程图](2.详细步骤按照上面的流程图,我们需要完成以下步骤来实现JavaSession关闭页面失效。步骤动作1.设置Session失效时间2.在页面中获取Session对象3.判断S......
  • java线程详解
    java线程详解线程概念说到线程,就不得不提进程,为什么呢,因为进程是操作系统进行分配资源和调度的最小单位,比如windows系统安装的应用软件(office、qq、微信等)启动时,由操作系统协调分配资源和调度执行称之为一个进程,进程间是相互独立和隔离的。而线程是进程最小执行单位,一个进程的......
  • 定位详解
    定位这个东西,blablabla,什么absolute,fixed...一头雾水定位=定位模式+边偏移定位模式......