ssl和ssh的概念,session,cookie,token的定义

这篇文章简要讲述一下ssl,ssh,session,cookie,token的概念,不涉及用法。

本文可能涉及的两个概念:

负载均衡:负载均衡是在多个服务器之间有效分配网络流量的过程,目的是优化应用程序的可用性,并确保良好的终端用户体验。

UTC格式时间:YYYYMMDD T HHMMSS Z(或者时区标识)---2021-03-17T23:47:55.978+08:00

2021-03-17T23:47:55.978+08:00

一、ssl和ssh

      SSH和SSL乍一看很相似,因为它们都可以帮助您创建安全连接。然而,它们有两个截然不同的目的。

      SSL主要用于加密在您网站的访问者和您的服务器之间移动的数据。例如,如果访问者输入他们的信用卡或在登录表单中输入他们的密码,SSL将加密该数据并保护它免受中间人攻击。另一方面,SSH用于安全地登录到远程机器,以便您可以发出命令、操作该机器上的文件等。如果您想使用WP-CLI,则需要SSH,通过SFTP、远程访问您的数据库等。

      唯一可以使用SSH连接到您的服务器的人是能够使用用户名/密码或 SSH 密钥进行身份验证的人。

原文SSH与SSL有什么区别? - 闪电博

二、session,cookie,token

   其实他们三个都与保存信息有关。最常用的场景,比如说登录页面,这里插入一下http无状态协议,这个东东并不会保存用户上一次请求的信息,所以当我们在登陆完之后想要再次提交信息给服务器时,就没得办法了。这个时候cookie出现了。

1.Cookie:

定义:cookie是保存在本地终端的数据。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用。

组成:cookie的内容主要包括:名字、值、过期时间、路径和域(路径与域一起构成cookie的作用范围)。

特点:若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失,这种就叫会话cookie,保存在内存中。如设置了过期时间,浏览器就会把cookie保存在硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。

流程:

cookie 是 http 协议的一部分,它的处理分为如下几步:

服务器向客户端发送 cookie。

通常使用 HTTP 协议规定的 set-cookie 头操作。

规范规定 cookie 的格式为 name = value 格式,且必须包含这部分。

浏览器将 cookie 保存。

每次请求浏览器都会将 cookie 发向服务器。

他的常用参数分为:

   path:表示 cookie 影响到的路径,匹配该路径才发送这个 cookie。

   expires 和 maxAge:告诉浏览器这个 cookie 什么时候过期,expires 是 UTC 格式时间,maxAge 是 cookie 多久后过期的相对时间。 当不设置这两个选项时,会产生 session cookie,session cookie 是 transient 的,当用户关闭浏览器时,就被清除。 一般用来保存 session 的 session_id。

   secure:当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效。 httpOnly:浏览器不允许脚本操作 document.cookie 去更改 cookie。 一般情况下都应该设置这个为 true,这样可以避免被 xss 攻击拿到 cookie。

2.Session机制

    session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。

session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以伪造的字符串,这个session id将被 在本次响应中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器 可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字就是类似于SESSIONID。

由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。

两种方式:

第一种:URL重写(常用),就是把session id直接附加在URL路径的后面。

第二种:表单隐藏字段(现已很少使用)。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。

3.Token令牌

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  • 客户端使用用户名跟密码请求登录
  • 服务端收到请求,去验证用户名与密码
  • 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
  • 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
  • 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  • 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

原文:session 、cookie和token三者的关系和区别 · Front-end-handbook


 

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值