cookie和session的跨域怎么解决
匿名提问者2023-05-26
cookie和session的跨域怎么解决
推荐答案
cookie和session的跨域怎么解决
cookie和session是为HTTP请求挂载状态的,也就说在前后端交互的过程中,往往需要利用cookie或者session来对客户端进行标记。
根据cookie的设置及使用方式又分为所谓的session、token。
传统的cookie验证方式是这样的:
1、客户端在向服务端登录的时候,服务端直接通过响应头上set-cookie字段,为浏览器客户端注入cookie,或者将对应的信息放置在响应内容中,客户端自行将其存储在cookie中。
2、客户端在每次发送请求的时候就可以将cookie携带在请求头上进行数据的传递,服务端拿到此次请求头中的cookie进行验证。
3、客户端自行设置cookie或者由服务端设置cookie的时候也去设置此cookie的过期时间,当cookie过期后相当于登录过期了。
session的验证方式:
1、客户端在向服务端登录的时候,服务端自行建立客户信息表,并且建立生命周期机制,服务端再将此信息通过cookie或者数据直接返回的形式,返回给客户端。
2、客户端拿到验证信息后,可以选择存储在cookie中获取localStorage中都可以。
3、每次请求的时候携带验证信息(cookie就自动写到,localStorage需要取出携带)
4、服务端接收到请求后,判断该验证信息是否过期
session的这种方式,根据验证信息的加密情况,也被称为token。
cookie和session本质是都是利用cookie或者localStorage来进行数据交互,而cookie和localStorage又都有跨域的限制:
cookie通过设置domain可以实现一级域名下的二级域名之间可以互相访问,localStorage则不能跨域。
解决跨域一般可以采用代理/中间服务器的形式,利用websocket也可以解决。B可以将自己的cookie通过请求告知C,A想要获取B的cookie的时候去请求C。