在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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何用gg修改器的偏移修改_gg修改器知道了代码怎么改

    如何用gg修改器的偏移修改_gg修改器知道了代码怎么改GG修改器正版是一款模拟游戏的辅助游戏,在这个修改器中我们可以尽情的使用模拟各种辅助游戏的方式,让我们可以在游戏中得到更多的游戏帮助,操作简单,并且包含了大量的游戏辅助能力,是一款非常好用的游戏辅助。GG修改器正版介绍1.玩家可以根据自己的想法随时随地修改游戏的值,修改位我们需要或者是最大值进行游戏;2.操作方法非常简单,让您在游戏中拥有真实的上帝体验,并体验游戏的乐趣和无限的能力;3.该软件不需…

    2022年9月5日
    3
  • idea2019最新可用激活码_通用破解码

    idea2019最新可用激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    1.0K
  • HTTP状态404未找到是什么意思_HTTP状态码详解

    HTTP状态404未找到是什么意思_HTTP状态码详解一些常见的状态码为:200-服务器成功返回网页404-请求的网页不存在503-服务不可用详细分解:1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码说明100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。…

    2025年6月10日
    0
  • 关于kafuka的简单认识与理解「建议收藏」

    关于kafuka的简单认识与理解「建议收藏」因为工作中负责维护的产品中有使用消息中间件kafuka的系统,所以把工作中的理解和遇到的问题总结出来,方便后期查看,好记性不如烂笔头。kafuka是一个分布式的、分区化、可复制提交的发布订阅消息系统,使用kafuka需要对其中的一些概念做简单了解。一、kafuka基础1、topic主题:Kafka中用于区分不同类别信息的类别名称。由producer指定2、Producer:将消息发布到Kafka特定的Topic的对象3、Consumers:订阅并处理特定的Topic中的消息的对象4、broke

    2022年6月11日
    44
  • navcat 15 激活码_在线激活[通俗易懂]

    (navcat 15 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S…

    2022年3月26日
    58
  • ping和traceroute的工作原理

    ping和traceroute的工作原理PING原理PING是基于ICMP协议(网络层)工作的ICMP:InternetControlMessageProtocol,互联网控制报文协议ICMP用于报告传输过程中出现的问题,比如确认IP包是否成功送达,或者发送过程中被废弃的原因比如主机A向主机B发送消息,在途径某个路由器时,无法发现B的存在。路由器就会向A发送一个ICMP不可达的数据包,A解析ICMP的首部和数据段得知具体信息ICMP报文封装在IP包里,从左到右依次是IP头、ICMP头、ICMP数据段,后两部分构成IP

    2022年7月21日
    8

发表回复

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

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