cookies,session,token

http请求是客户端向服务器发送请求,服务器作出响应,可是有的时候服务器并不知道发出请求的客户端是谁,如何理解这句话呢浏览器

若是客户端A经过代理B链接到服务器,这时候A的IP是B分配的,若是这时候链接断了,当客户端再次连接到服务器的时候,IP又变了,这时候服务器以及是不一样的客户端,实际上仍是同一个客户端安全

若是多个客户端在同一个局域网经过路由向服务器发送请求,请求的IP均是同一个,这时候服务器觉得是同一个的客户端其实是不一样的客户端服务器

所以如何对客户端进行惟一的标识,是须要解决的问题cookie

解决方法:session

cookie:负载均衡

cookie是保存在本地终端的数据,cookie是由服务器生成,发送给浏览器,浏览器以kv的形式进行保存,下一次请求同一个网站的时候会把cookie信息发送给服务器。性能

cookie的组成有:名称,值,有效域、路径、失效时间、安全标志网站

经过在http请求中携带的信息进行标识,cookie就是用来解决这个问题的。ui

服务器端返回给客户端一个请求响应的时候,会包含set-cookies,意思是指示客户端创建cookie,而且在后续的http请求中发送这个cookie直到这个cookie过时。spa

一个cookie的设置以及发送过程分为如下四步:

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

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

客户端发送一个http请求到服务器端,其中包含Cookie头部

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

session:

session的意思是“会话”,客户端与服务器的一次请求就产生一个session,服务器使用session将用户的信息临时保存在服务器上,用户离开网站session就会销毁。这种方式相对于cookie而言比较安全,可是也会存在问题,若是服务器作了负载均衡的话,那么下一次操做到别的服务器,session就会丢失。

token:

token是“令牌”是用户身份的验证方式,包含:uid,time,sign

 cookie session的区别

一、cookie数据存放在客户的浏览器上,session数据放在服务器上。

二、cookie不是很安全,别人能够分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

三、session会在必定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

四、单个cookie保存的数据不能超过4K,不少浏览器都限制一个站点最多保存20个cookie。

五、因此我的建议:
   将登录信息等重要信息存放为SESSION
   其余信息若是须要保留,能够放在COOKIE中

token 和session 的区别

  Session 是一种HTTP存储机制,目的是为无状态的HTTP提供的持久机制。所谓Session 认证只是简单的把User 信息存储到Session 里,由于SID 的不可预测性,暂且认为是安全的。这是一种认证手段。 Token ,提供的是 认证 和 受权 ,认证是针对用户,受权是针对App 。其目的是让 某App有权利访问 某用户 的信息。这里的 Token是惟一的。不能够转移到其它 App上,也不能够转到其它 用户 上。 转过来讲Session Session只提供一种简单的认证,即有此 SID,即认为有此 User的所有权利。是须要严格保密的,这个数据应该只保存在站方,不该该共享给其它网站或者第三方App 因此简单来讲,若是你的用户数据可能须要和第三方共享,或者容许第三方调用 API 接口,用 Token 。若是永远只是本身的网站,本身的 App,用什么就无所谓了。

  token就是令牌,好比你受权(登陆)一个程序时,他就是个依据,判断你是否已经受权该软件;cookie就是写在客户端的一个txt文件,里面包括你登陆信息之类的,这样你下次在登陆某个网站,就会自动调用cookie自动登陆用户名;sessioncookie差很少,只是session是写在服务器端的文件,也须要在客户端写入cookie文件,可是文件里是你的浏览器编号.Session的状态是存储在服务器端,客户端只有session id;而Token的状态是存储在客户端。

相关文章
相关标签/搜索