Cookie简介

①.是由服务器发给客户端的特殊信息,以文本的形式存放在客户端

②.客户端再次请求的时候,会把Cookie回发给服务器

③.服务器接收到后,会解析Cookie生成与客户端相对应的内容

Cookie的设置与发送过程分以下四步:(cookie的实现方式)

客户端发送一个http请求到服务端

服务端发送一个http响应到客户端,其中包括了Set-Cookie的头部

客户端再发送一个http请求到服务器端,包括了cookie头部

服务器端发送一个http响应到客户端

Session简介

①.服务器端的机制,在服务器上保存的信息

②.解析客户端请求并操作session id ,按需保存状态信息

Session的实现方式

使用cookie实现

服务器给每一个session分配唯一的JSessionID,并通过cookie发送给客户端,当客户端发起新的请求时候,将在cookie头中携带JSessionID,这样服务器能够找到客户端对应的session

使用URL地址回写

当服务器发送给浏览器页面的所有链接中,都携带JSessionID的参数,这样客户端点击任何一个链接,都会把JSessionID带回服务器,如果直接在浏览器输入服务端资源的URL来请求该资源,那么session是请求不到的

区别

session就是会话,是存储在服务器端,有一个用户访问网站,服务器就会开一块区域来保存session信息,比如sessionId,登录信息等,可以自定义保存各种会话相关的信息。可以理解为一个状态列表,拥有一个唯一识别符号sessionId,通常存放于cookie中,依赖cookie。服务器收到cookie后解析出sessionId,再去session列表中查找,才能找到相应session。

cookie是客户端浏览器上的,也可以理解为浏览器端,也是用来保存各种自定义信息,装有sessionId浏览器通常会自动添加。有了cookie,浏览器在下次访问网页时会自动附带上它发送给服务器,服务器通过识别 cookie 并鉴定出是哪个用户,然后再判断用户是否是登录状态,进而返回对应的响应。

不过cookie容量小,现在被h5的缓存替代了,就是localStorage和sessionStorage,cookie一般用不到了。

token是登录的标识,是我们自己定义的一种业务信息,可以存到session、cookie、h5缓存、redis,根据你业务的需要来生成和存放,用户信息都被加密到token中,服务器收到token后解密就可知道是哪个用户,需要开发者手动添加。

附加一道面试题

我们怎样利用 Cookies 保持状态呢?

当客户端第一次请求服务器时,服务器会返回一个响应头中带有 Set-Cookie 字段的响应给客户端,用来标记是哪一个用户,客户端浏览器会把Cookies 保存起来。当浏览器下一次再请求该网站时,浏览器会把此 Cookies 放到请求头一起提交给服务器,Cookies 携带了 Session ID 信息,服务器检查该 Cookies 即可找到对应的 Session 是什么,然后再判断 Session 来以此来辨认用户状态。

简单介绍session,cookie,token以及区别的更多相关文章

  1. 【转】Session Cookie Token的区别

    Cookie cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能. cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保 ...

  2. cookie和session及token的区别联系

    1 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应,  尤其是我 ...

  3. cookie、session、token的区别与联系

    https://www.cnblogs.com/moyand/p/9047978.html cookie.session.token存在意义 http协议是无状态协议,请求之间是没有联系的,cooki ...

  4. Session 与 Token 的区别

    1. 为什么要有session的出现?答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的.如果要进行类似论坛登陆相关的操作,就实现不了 ...

  5. Session与Token的区别

    1. 为什么要有session的出现?答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的.如果要进行类似论坛登陆相关的操作,就实现不了 ...

  6. Session Cookie Token Json-Web-Token

    什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明"你是你自己"(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就 ...

  7. 29、前端知识点--session\cookie\token

    Java Token的原理和生成使用机制 https://yq.aliyun.com/articles/594217 Cookies Session Token 三者区别及应用场景 https://w ...

  8. cookie、session、token的区别

    一.  cookie 1.什么是cookie? Cookie 技术产生源于 HTTP 协议在互联网上的急速发展.随着互联网时代的策马奔腾,带宽等限制不存在了,人们需要更复杂的互联网交互活动,就必须同服 ...

  9. session/cookie/token

    1.cookie是把登录信息存放在客户端 2.session是把登录信息存放在服务器 3.token是在登录的时候服务器提供一个令牌标识,可以存放在local storage,请求资源时带上token ...

随机推荐

  1. 12.SpringMVC之拦截器

    1.拦截器概述 1.1 什么是拦截器? Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以 ...

  2. iphdr结构

    包含在/usr/src/linux/include/linux/ip.h 1 struct iphdr { 2 #if defined(__LITTLE_ENDIAN_BITFIELD) 3 __u8 ...

  3. react启动报babel-eslint依赖版本不一致

    遇到的问题: gitlab上拉的react的项目,下载依赖之后,yarn start启动报错 因为按他说的步骤:1.改动比较大, 2.完全没什么作用(重点) 解决方案:直接忽略,如果项目没有.env文 ...

  4. SpringBoot快速搭建流程

    创建一个新项目 使用maven创建一个新项目 给定项目名称.finsh完成创建 跑起来SpringBoot 引入依赖parent > SpringBoot父级依赖,spring-boot-sta ...

  5. kettle 查询 tinyint 值为 Y,kettle 查询 tinyint 为布尔值

     问题解决方法 1.在数据库连接中的[选项]命令参数中加入:tinyInt1isBit = false,如下图: 实际场景:

  6. 如何实现LRU缓存

    大家好,我是程序员学长,今天我们来聊一聊LRU缓存问题. Tips: LRU在计算机软件中无处不在,希望大家一定要了解透彻. 问题描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设 ...

  7. vue3 项目 用 vue-video-player 做直播 ( 亲测可用 )

    npm 安装 npm install --save vue-video-player npm install --save videojs-flash 1 <template> 2 < ...

  8. Python网编之简单的聊天小程序

    服务端: import socket sock = socket.socket() sock.bind(("127.0.0.1",8899)) sock.listen(5) whi ...

  9. noip模拟测试50

    考试过程:开题顺序1,2,3,做T1的时候我想到了要求的东西,就是分成尽量少的段使得每段之和>=k,但是我不会求,就打了个暴力走了,然后看T2,这题我觉得和之前做过的一道题比较像,因为我觉得\( ...

  10. 动环监控系统中B接口的实现

    动环监控系统简述 1.术语介绍 1.1 省集中监控中心-Province Supervision Center(PSC) 面向多FSU管理的高级监控层次,即省集中监控中心,通过开放的数据协议,连接监控 ...