6.21笔记(Token,session,cookie)

1L是什么意思?

java中经常会碰到“long c = 1L”的写法,L表示long ,long占用8个字节,表示范围:-9223372036854775808 ~ 9223372036854775807
1L其实就是1。

常量后面跟这个一般是指类型,1L表示1是长整型,如果是1f 表示是float型

登录令牌Taken

首次登录成功后,会生成一个一串加密的字符串。这个字符串就是客户端进行发送登录请求的令牌。当第一次登录成功后,服务器就生产了一个taken(本地存储)并返回给客户端。登录成功之后在指定时间范围之内,直接用taken进行登录即可,无需输入用户名和密码

其中在taken的生命周期内,每次客户端发送请求时taken都在请求的头部中

特征:

  • 无状态,可拓展:

    如果存到session中,用户每次想登录都要去已验证的服务器发送验证信息,可能会造成拥堵。而使用token后,直接在客户端存储验证信息,就减轻了服务器的压力。token可以创建和其他程序共享的程序(Facebook和Twitter联系起来)

  • 支持移动设备:

  • 跨程序调用

    可以介入到各种设备和应用程序,只要用户有一个通过了验证的token,数据和资源就会在任何域上被请求到

  • 安全

JWT

全称json web token 。它把用户的信息加密到token中,服务器中不存储用户的信息。服务值只需要生成一个密钥,每一次验证这个密钥即可

<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>

使用:

D:\java_project\cqoa\ruoyi-framework\src\main\java\com\ruoyi\framework\web\service\TokenService.java

Token

是身份的验证方法,用户在登录成功后回生成一个token,下次登录时浏览器直接识别这个token的值即可判断是否符合登录条件

是由服务器发送给客户端的特殊信息,浏览器会把cookie保存到本地目录的文本下。下一次请求同一个网站会把这个cookie发给服务器。

作用:cookie的目的就是存储web的状态信息

session:

代表服务器和浏览器的会话过程,session是由服务器生成的,一般存储在服务器的内存,缓存和硬盘上。当关闭浏览器(结束一次会话)后session就会失效

token和cookie的比较

token:服务器直接看Token以判断是否可以登录,无需判断验证身份信息

cookie:不仅具有登录验证的功能,在之后的任何操作,只要向服务器初始cookie,服务器就可以识别到当前用户所有的相关身份信息

session和cookie的比较
  • cookie存放在客户端本地,session存放在服务端

  • cookie只能保管ASCII字符串,否则要进行编码处理

    session可以保存任何类型的数据,使用方便

  • 由于cookie存在本地,就可能会发生用户安全问题,所以用户密码等敏感信息不要放在cookie中

    session时放在服务器上的,里面的任何隐私信息都能得到有效的保护

  • cookie的有效期一般很长

    session在关闭会话后就会失效

  • cookie是放在客户端本地的,所以对服务器不造成压力影响

    session是存储在服务器上的,放并发访问用户十分多使,会产生非常多的session,就消耗了很多的内存

HttpServletRequest

HttpServletRequest代表客户端的请求,当客户端通过http进行访问服务器时,http请求都封装到这个对象中。

getRequestURL:返回客户端发出请求时的完整的url

getHeader(string string):以string的形式返回请求头部的值,如果含有多个头部相同的头部,值返回第一次出现的头

posted @ 2021-06-23 17:26  今天不摸鱼  阅读(112)  评论(0)    收藏  举报