Kong的插件: session
session的简述
session和cookie都是用来解决HTTP的连接时无状态的问题。比如我们常见的登录问题,如果没有session和cookie机制我们每次都要输入用户和密码。
cookie是把状态信息保留在客户端,一旦cookie创建,浏览器就会给每次请求添加上cookie的请求头,当cookie的信息比较大时,这无形给每次请求增加了负担。
session是把用户的状态信息保留在服务端,把sessionID发送给客户端并保存在cookie中,这种每次请求的时候,用户只需带着sessionID过来就行了。session无疑增加了服务端的负担,比如要根据sessionID查询session的信息,session的维护(定时清理等)。
Kong的session插件,说几点
- 存储
Kong支持两种session的存储方式cookie和kong。kong的方式是把session的状态存储在Kong的数据库中(pg或者Cassandra);cookie的方式是把信息存储在客户端,这个是在用户第一次访问的时候,会返回一个Set-Cookie的头给客户端。 - 过期时间
Kong的session插件有两个参数config.cookie_lifetime和config.cookie_renew。cookie_renew是说多久重建一次session,如果session重建了,客户端存储的cookie就失效了,服务端会再次返回Set-Cookie请求头。
cookie_lifetime是指session的最终过期时间,这个参数我没理解透,我的理解是:如果我们访问过程中session发生了重建,那么cookie_lifetime就会被重置。后面是官方的解读,如果有更好的理解请告诉我呀,万分感激:
Sessions will use the built-in Kong DAO ttl mechanism which destroys sessions after specified cookie_lifetime unless renewal occurs during normal browser activity.
- cookie跨域
Kong设置了三个参数Strict,Lax, off。每个请求其实是有两个属性起源域名origin和目的域名destination,当origin和destination不一样时就是跨域请求了。
Strict
,当origin和destination不一样时就不会发送该cookie
Lax
, 当origin和destination不一样时,会有一种情况就是origin是其他的域名,destination是本域名(Kong的8000端口所在的域名),这种情况会发送cookie
off
, 不管情况都会发送
做个小实验
- 环境准备
你需要有一个service和route,如果没有的话,参考https://blog.csdn.net/u014686399/article/details/100084613,我的试验也是基于这个 - 启用插件
/services/4abd8249-936a-477d-ac3e-7b21a00aa3f6/plugins POST
{"name":"session","config":{"storage": "kong","cookie_secure": false}
}
- 4abd8249-936a-477d-ac3e-7b21a00aa3f6 这是服务的id
- storage 使用Kong的存储
- 测试
首次访问
curl -i -X GET --url http://172.16.0.92:31545/xjj_example/main?apikey='U3FffwYrxdvEtNmevAmWMiXpZ3pQiwNv'
- 我添加了key-auth插件所以我的请求要添加apikey,如果你没有添加key-auth插件,就不用添加这个头
- 我们带着cookie来访问
curl -i -X GET \--url http://172.16.0.92:31545/xjj_tv/main?apikey='U3FffwYrxdvEtNmevAmWMiXpZ3pQiwNv' \-H "session=G6mKAW9_Hsavn4nXrR60Uw..|1567138877|XKFcMNdtQcn84jw8eIlMg5sLjwE.; Path=/; SameSite=Strict; HttpOnly"
- Kong的session插件的 logout
这个我没研究明白,请各位大神指点一下
先写到这里了,有问题进QQ群630300475
Kong的插件: session相关推荐
- kong的插件: Response Rate Limiting
简述 这也是一种限流的插件和Rate Limiting相似,但是有一定的区别.Response Rate Limiting是由后端服务控制频率的减少,而Rate Limiting是由Kong完成的. ...
- Kong的插件:Request Size Limiting
简述 这个插件是用来限制请求体的大小.当请求体超过阀值的时候,就会拒绝请求 操作起来 环境准备 你应该具有一个可以正常使用的service和route,如果没有请参照https://blog.csdn ...
- Kong网关插件使用
转载 李亚飞 大佬的文章:https://www.lyafei.com/ 授权验证 在接口请求中权限验证是一个恒久不变的话题,Kong 自带了6种加密方式 先创建一个 Basic Auth,直接确认即 ...
- Kong的插件: hmac
hmac简述 hmac是Hashing for Message Authentication的简写,可以用来保证数据的完整,客户端把内容通过散列/哈希算法算出一个摘要,并把算法和内容以及摘要传送给服务 ...
- 在K3s上使用Kong网关插件,开启K3s的无限可能!
我的工作中很重要的一部分是参加各种各样的技术会议.最近参加的是去年11月的北美KubeCon,在会议的最后一天,所有人都焦头烂额,我也一直机械地向不同的人重复我的自我介绍.后来,我已经十分烦躁,决定逃 ...
- Kong的插件:Rate Limiting
简述 这个插件是限流使用的,如果我们后端服务扛不住前端的流量或者要防止某些人恶意的使用流量攻击我们,可以考虑一下限流 操作起来 试验准备 要有一个可用的service和route,如果没有可以参照ht ...
- kong插件应用(熔断 限流,黑白名单,认证(basic,key,jwt,hmac,),授权,加密,zipkin链路跟踪,日志, prometheus可视化, 爬虫控制插件)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 kong安装部署以及kong-dashboard参考:https://blog.csdn.net/luanpeng825485697/article/ ...
- API网关Kong(三):功能梳理和插件使用-基本使用过程
作者: 李佶澳 转载请保留:原文地址 发布时间:2018-10-10 14:37:53 +0800 说明 Kong的Admin API Kong定义的资源之间的关联关系 使用过程了解 先了解下 ...
- kong笔记——自定义插件 目录及部署
kong笔记 目录导航 简述 本文目标: 了解kong插件的基本信息 手动部署自定义插件 注意:本文不涉及自定义插件的开发,仅仅说明自定义插件的目录结构与部署方式 目录结构 基本插件模块 两个必须的文 ...
最新文章
- C 语言中 void* 详解及应用介绍
- map评价吗 voc数据集可以用coco_【庖丁解牛】从零实现RetinaNet(九):使用COCO预训练权重在VOC上训练RetinaNet...
- [凯立德]2014春季版3121J0H+3121D0H
- nodejs实现webservice问题总结
- mac下简单绘图工具
- Android 6种快速开发框架
- 报表类似选项卡的功能
- 用matlab实现视频截图字幕部分的拼接
- get buffer from CMSampleBufferRef
- leetcode[81]Search in Rotated Sorted Array II
- 不同公式等号对齐_魔方的公式(第二版)
- 局域网或者本地开发https自签名证书解决办法
- 坚持写技术博客一年能有多少收获!
- 电子计算机经历的四个阶段,电子计算机的发展经历了四代,其划分依据是什么?,计算机发展的四个阶段...
- 微信团队分享:视频图像的超分辨率技术原理和应用场景
- Java面向对象知识点小结
- 吾爱破解安卓逆向入门教程学习心得(1-4)
- ipxe(可选):winboot:网络引导(启动)wim格式的windows PE系统:配置文件写法
- 快速排序(quickSort)
- oracle账户密码怎么写,oracle 10g默认用户名、密码解锁