在node.js中使用COOKIE

node.js中如何向客户端发送COOKIE呢?有如下两个方案:一、使用response.writeHead,代码示例://设置过期时间为一分钟1vartoday=newDate();

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

node.js中如何向客户端发送COOKIE呢?
有如下两个方案:
一、使用response.writeHead,代码示例:
//设置过期时间为一分钟

 1 var today = new Date();
 2 var time = today.getTime() + 60*1000;
 3 var time2 = new Date(time);
 4 var timeObj = time2.toGMTString();
 5 response.writeHead({
 6 'Set-Cookie':'myCookie="type=ninja", "language=javascript";path="/";Expires='+timeObj+';httpOnly=true'
 7 });
 8 
 9 
10 语法如下(具体每个字段的解释,请看下文的“options字段含义”):
11 Set-Cookie:'
12 cookieName=cookieValue;
13 [expires=]
14 [;domain=]
15 [;path=]
16 [;secure=]
17 [;httpOnly=]
18 '

 

通过查看,COOKIE如下图所示:

在node.js中使用COOKIE
缺点:使用response.writeHead只能发送一次头部,即只能调用一次,且不能与response.render共存,否则会报错

 

http://www.cnblogs.com/roucheng

二、使用response.cookie,代码示例如下:

response.cookie(‘haha’, ‘name1=value1&name2=value2′, {maxAge:10*1000, path:’/’, httpOnly:true});

语法如下:
response.cookie(‘cookieName’, ‘name=value[name=value…]’,[options]);

options字段含义:
1、expires:指定过期时间,以GMT格式表示的时间字符串,如方法一个的“timeObj”。
2、maxAge:指定过期时间,同expires(expires和maxAge选两者其一设值即可)。和expires不同之处在于,maxAge值的单位为毫秒(见方法二中的maxAge:10*1000,即为10秒)。maxAge值可以是正数和负数。正数表示当前COOKIE存活的时间。负数表示当前COOKIE只是随着浏览器存储在客户端的内存里,只要关闭浏览器,此COOKIE就马上消失。默认值为-1。
3、domain:指定可访问COOKIE的主机名。主机名是指同一个域名下的不同主机。如:www.hovertree.com和tool.hovertree.com是在两个不同的主机上,即两个不同的主机名。默认情况下,一个主机中创建的COOKIE在另一个主机下是不能被访问,但可以通过domain参数来实现对其的控制,即所谓的跨子域。以hovertree为例,要实现跨主机(跨子域)访问,写法如下:domain=.hovertree.com,这样就实现了所有hovertree.com下的主机都可以访问此COOKIE。(本机环境上设置此值时,COOKIE无法查看。)
4、path:指定可访问此COOKIE的目录。如:path=/default 表示当前COOKIE仅能在 default 目录下使用。默认值为“/”,即根目录下的所有目录皆可以访问。
5、secure:当设为true时,表示创建的COOKIE会以安全的形式向服务器传输,即只能在HTTPS连接中被浏览器传递到服务器端进行会话验证;若是HTTP连接则不会传递该信息,所以不会被窃取到COOKIE里的具体内容。同理,在客户端,我们也无法使用document.cookie找到被设置了secure=true的cookie健值对。secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,httpOnly属性的目的是防止程序获取COOKIE后进行攻击(XSS)。我们可以把secure=true看成比httpOnly=true是更严格的访问控制。
6、httpOnly:是微软对COOKIE做的扩展。如果在COOKIE中设置了“httpOnly”属性,则通过程序(JS脚本、applet等)将无法读取到COOKIE信息,防止XSS攻击产生。
通过查看,COOKIE如下图所示:

在node.js中使用COOKIE

http://www.cnblogs.com/roucheng/p/3520056.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120684.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sensor DVP接口介绍

    sensor DVP接口介绍转载:https://blog.csdn.net/hua371242480/article/details/88629023原创sensor接口之DVP…

    2022年4月29日
    69
  • java面试问题大全及答案大全word,逆袭面经分享

    java面试问题大全及答案大全word,逆袭面经分享一、对象的实例化1.创建对象的方式new:最常见的方式(本质是构造器)变形1:Xxx的静态方法变形2:XxBuilder/XxoxFactory的静态方法Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是publicConstructor的newInstance(Xxx):反射的方式,位于java.lang.reflect.Constructor可以调用空参、带参的构造器,权限没有要求使用clone():不调用任何构造器,当前类需

    2022年7月7日
    27
  • Pycharm代码提示「建议收藏」

    Pycharm代码提示「建议收藏」点击File然后将PowerSaveMode旁边的√去掉就可以了我安装了中文插件,中文就是省电模式,取消勾选就可以实现代码提示

    2022年8月27日
    2
  • 免费个人网页制作指南Dreamweaver教程

    免费个人网页制作指南Dreamweaver教程1.网页是什么1.1.什么是网页网页的称作HTML文件,是一种可以在www网上传输,并被浏览器识别和翻译成文本页面显示出来的文件。WWW的全名是“WorldWideWeb”;HTML的全称是“HypertextMarkupLanguage”,中文翻译为“超文本标记语言”。“超文本”就是指页面内可以包含图片、链接、甚至音乐,程序等非文字的元素。网页就是由H

    2022年6月5日
    49
  • 接口测试-Mock测试方法

    接口测试-Mock测试方法一、关于Mock测试1、什么是Mock测试?Mock测试就是在测试过程中,对于某些不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者不容易获取的比较复杂的对象(如JDBC中的ResultSet对象),用一个虚拟的对象(Mock对象)来创建以便测试的测试方法。2、为什么要进行Mock测试?Mock是为了解决不同的单元之…

    2022年6月20日
    27
  • 可用的NTP服务器地址「建议收藏」

    可用的NTP服务器地址「建议收藏」国内可用的Internet时间同步服务器地址(NTP时间服务器)好在阿里云提供了7个NTP时间服务器也就是Internet时间同步服务器地址ntp1.aliyun.comntp2.aliyun.comntp3.aliyun.comntp4.aliyun.comntp5.aliyun.comntp6.aliyun.comntp7.aliyun.com以下红色部分是我能ping通的地址,不能平通的也…

    2022年6月14日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号