26_iOS干货18之网络3_token & cookie & session & 签名

一,token

token定义:
短连接(http:)使⽤用token 机制来验证⽤用户安全性,相信⼤大多数App在⽤用户登录
后都是给⽤用户⾃自⼰己认证的 token,当然也会在登录时重新分配 token ,作为⽤用户的唯 ⼀一凭证


token 值获取:
当⽤用户⾸首次登录成功之后, 服务器器端就会⽣生成⼀一个 token 值.
1.服务器器会将 token 值保存在数据库中。并将这个 token 值返回给客户端. 2.客户端拿到 token 值之后,⼀一般保存在两个位置,将 token 保存在沙盒中,作为⼀一个 公共参数传递.或者将 token 保存在 cookie 中。


如何使⽤用 token
以后客户端再次发送⽹网络请求(不不是登录请求)的时候,就会将这个 token 值附带到参 数中发送给服务器器.服务器器接收到客户端的请求之后,会取出 token 值与保存在本地 (数据库)中的 token 值做对⽐比,如果两个 token 值相同就说明⽤用户登录成功过,当前 ⽤用户处于登录状态。如果没有这个 token 值, 没有登录成功。如果 token 值不不同,说 明原来的登录信息已经失效,这时告诉客户端让⽤用户重新登录。

二,cookie

cookie定义:
cookie 是服务端为了了识别终端身份,保存在终端本地的⽤用户凭证信息。cookie 中的 字段与意义由服务端进⾏行行定义。例例如,当⽤用户在进⾏行行了了登录操作后,服务端会将 cookie 信息返回给终端,终端会将这些信息进⾏行行保存,在下⼀一次再次访问服务端 时,终端会将保存的cookie 信息⼀一并发送到服务端,服务端根据cookie 信息是否有 效来判断此⽤用户是否可以进⾏行行⼀一些行为。


token 和 cookie区别:
既然 token 是⽤用户的凭证信息,cookie 存储的是终端的⽤用户凭证信息。那么 把 token 存在 cookie 中 ,服务器器端就能准确够识别终端了了。在客户端每次发起请求时 就不不⽤用每次传 token 了了,服务端从 cookie 中取就⾏行行。

 

三,session

session的定义:

session和cookie的⽬目的相同,都是为了了克服http协议⽆无状态的缺陷,但完成的⽅方法 不不同。session通过cookie,在客户端保存session id,⽽而将⽤用户的其他会话消息保 存在服务端的session对象中,与此相对的,cookie需要将所有信息都保存在客户 端,Cookie 和 Session 都是为了了保持⽤用户访问的连续状态,之所以要保持这种状 态,⼀一⽅方⾯面是为了了⽅方便便业务实现,另⼀一⽅方⾯面就是简化服务端程序设计,提⾼高访问性 能,但是这也带来了了另外⼀一些挑战,如安全问题、应⽤用的分布式部署带来的;Session 的同步问题及跨域名 Session 的同步等⼀一系列列问题。⼀一般采⽤用 ⼀一致分布式Session 的解决⽅方案。

session与cookie的区别:

1、存储的地⽅方不不同,session存储在服务器器端,cookie存储在客户端;
2、能够存储的最⼤大值不不同,cookie的存储数据值最⼤大只能存储4k,session的存储 数据则没有⼤大⼩小限制;

3、安全性,相对于session,cookie相对不不太安全,容易易被盗⽤用导致cookie欺骗;

4、性能问题,由于session是存储在服务器器端的,当session过多时务必会给服务器器 带来性能上的影响。


session与cookie的联系:

⼀一般session都是在cookie的基础上实现的,每⼀一个不不同的session对应着⼀一个不不同 的session_id,这个session_id是⽤用来判断session是否相同的,session_id⼤大多是情 况下都是默认通过cookie传输,所以说session是基于cookie的基础的(当然 session_id也可以通过其他⽅方式传输,只要将这个session_id传到客户端就可以)。

cookie的通⽤用解释:
1,Cookie 的作⽤用我想⼤大家都知道,通俗地说就是当⼀一个⽤用户通过 HTTP 协议访问 ⼀一个服务器器的时候,这个服务器器会将⼀一些 Key/VLlue 键值对返回给客户端浏览器器, 并给这些数据加上⼀一些限制条件,在条件符合时这个⽤用户下次访问这个服务器器的时 候,数据⼜又被完整地带回给服务器器。
当初 W3C 在设计 Cookie 时实际上考虑的是为了了记录⽤用户在⼀一段时间内访问 Web应⽤用的⾏行行为路路径。由于 HTTP 协议是⼀一种⽆无状态协议,当⽤用户的⼀一次访问请求结束 后,后端服务器器就⽆无法知道下⼀一次来访问的还是不不是上次访问的⽤用户,在设计应⽤用 程序时,我们很容易易想到两次访问是同⼀一⼈人访问与不不同的两个⼈人访问对程序设计和 性能来说有很⼤大的不不同

session的通⽤用解释:
1,前⾯面已经介绍了了 Cookie 可以让服务端程序跟踪每个客户端的访问,但是每次客 户端的访问都必须传回这些 Cookie,如果 Cookie 很多,这⽆无形地增加了了客户端与 服务端的数据传输量量,⽽而 Session 的出现正是为了了解决这个问题。同⼀一个客户端每 次和服务端交互时,不不需要每次都传回所有的 Cookie 值,⽽而是只要传回⼀一个 ID, 这个 ID 是客户端第⼀一次访问服务器器的时候⽣生成的,⽽而且每个客户端是唯⼀一的。这样 每个客户端就有了了⼀一个唯⼀一的 ID,客户端只要传回这个 ID 就⾏行行了了,这个 ID 通常是NANE 为 JSESIONID 的⼀一个 Cookie

cookie和session的使⽤用总结:
Cookie 和 Session 都是为了了保持⽤用户访问的连续状态,之所以要保持这种状态,⼀一 ⽅方⾯面是为了了⽅方便便业务实现,另⼀一⽅方⾯面就是简化服务端程序设计,提⾼高访问性能,但 是这也带来了了另外⼀一些挑战,如安全问题、应⽤用的分布式部署带来的 Session 的同 步问题及跨域名 Session 的同步等⼀一系列列问题

 

四,签名

https,由于苹果规定2017年年1⽉月1⽇日以后,所有APP都要使⽤用HTTPS进⾏行行⽹网络请求, 否则⽆无法上架,证书分为两种,⼀一种是花钱向认证的机构购买的证书,服务端如果 使⽤用的是这类证书的话,那⼀一般客户端不不需要做什什么,⽤用HTTPS进⾏行行请求就⾏行行了了, 苹果内置了了那些受信任的根证书的。另⼀一种是⾃自⼰己制作的证书,使⽤用这类证书的话 是不不受信任的(当然也不不⽤用花钱买),因此需要我们在代码中将该证书设置为信任 证书。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值