openresty 前端开发进阶五之cookie篇
2017-01-26 00:00
2036 查看
摘要: openresty 前端开发进阶五之cookie篇
熟悉http协议的应该都知道,设置cookie是通过在响应头中的Set-Cookie字段来操作的,既然知道原理那上面的代码应该就很好理解,其实只要知道怎么用lua来设置响应头即可
OK, 访问
http://localhost/index 原生
http://localhost/index2 lua-resty-cookie
两种方式各有各的好处
第一种
优点:
简单,无依赖
缺点:
太简单?不够抽象,太底层?
第二种
优点:
获取设置都很简单,简单的封装了一层,提供了更有表现力的api接口
缺点:
多引入一个库,其实也不算什么缺点
看情况而定吧,假如cookie操作得比较少的话,可以用第一种,假如操作得比较多,可以考虑用第二种,编码比较统一
示例代码 参见demo12部分
这章主要演示怎么通过lua操作cookie
操作cookie有两种方式,一种是直接设置响应头,另外一种是用lua-resty-cookie库(其实原理是一样的,只不过做了一点封装),这个库也是春哥写的,可以放心使用,下面我分别介绍一下两种方式怎么用读取cookie一(原生)
print(ngx.var.http_cookie) -- 获取所有cookie,这里获取到的是一个字符串,如果不存在则返回nil print(ngx.var.cookie_username) -- 获取单个cookie,_后面的cookie的name,如果不存在则返回nil
设置cookie一(原生)
ngx.header['Set-Cookie'] = {'a=32; path=/', 'b=4; path=/'} -- 批量设置cookie ngx.header['Set-Cookie'] = 'a=32; path=/' -- 设置单个cookie,通过多次调用来设置多个值 ngx.header['Set-Cookie'] = 'b=4; path=/' ngx.header['Set-Cookie'] = 'c=5; path=/; Expires=' .. ngx.cookie_time(ngx.time() + 60 * 30) -- 设置Cookie过期时间为30分钟
熟悉http协议的应该都知道,设置cookie是通过在响应头中的Set-Cookie字段来操作的,既然知道原理那上面的代码应该就很好理解,其实只要知道怎么用lua来设置响应头即可
获取cookie二(lua-resty-cookie)
local cookie = resty_cookie:new() local all_cookie = cookie:get_all() -- 这里获取到所有的cookie,是一个table,如果不存在则返回nil print(cjson.encode(all_cookie)) print(cookie:get('c')) -- 获取单个cookie的值,如果不存在则返回nil
设置cookie二(lua-resty-cookie)
cookie:set({ key = "c", value = "123456", path = "/", domain = "localhost", expires = ngx.cookie_time(ngx.time() + 60 * 13) })
OK, 访问
http://localhost/index 原生
http://localhost/index2 lua-resty-cookie
两种方式各有各的好处
第一种
优点:
简单,无依赖
缺点:
太简单?不够抽象,太底层?
第二种
优点:
获取设置都很简单,简单的封装了一层,提供了更有表现力的api接口
缺点:
多引入一个库,其实也不算什么缺点
看情况而定吧,假如cookie操作得比较少的话,可以用第一种,假如操作得比较多,可以考虑用第二种,编码比较统一
示例代码 参见demo12部分
相关文章推荐
- openresty 前端开发进阶二之https后端
- openresty 前端开发进阶一之http后端
- openresty 前端开发进阶五之cookie篇
- openresty 前端开发进阶一之http后端
- openresty 前端开发进阶二之https后端
- openresty 前端开发轻量级MVC框架封装二(渲染篇)
- openresty 前端开发入门四之Redis篇
- Web前端开发高手进阶
- openresty 前端开发序
- 前端与移动开发---菜鸟进阶计划001
- openresty 前端开发轻量级MVC框架封装一(控制器篇)
- openresty 前端开发入门二
- openresty 前端开发入门三之JSON篇
- openresty 前端开发入门六之调试篇
- web前端开发分享-css,js进阶篇
- openresty 前端开发入门五之Mysql篇
- 前端进阶试题css(来自js高级前端开发---豪情)既然被发现了HOHO,那我就置顶了嘿嘿!觉得自己技术OK的可以把这套题目做完哦,然后加入高级前端的社区咯
- 我在阿里这仨月 前端开发流程 前端进阶的思考 延伸学习的方式很简单:google 一个关键词你能看到十几篇优秀的博文,再这些博文中寻找新的关键字,直到整个大知识点得到突破
- openresty 前端开发入门一
- openresty 前端开发入门六之调试篇