携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情
系列介绍
该系列主要是介绍一些nodejs相关的基础知识,没有什么特别难的知识点,都是一些比较基础知识点。大家学习起来,也会比较容易理解和接收。
这些知识点,也是以前自己学习nodejs的时候,学习过的知识点。有些知识点,可能是由于学习的时间比较久了,也有可能是平时工作中用到的机会比较少,也差不多快把它们都忘记掉了。现在把它们都写下来,写成文章,一方面是记录下自己以前学习的nodejs知识点,一方面也是复习巩固自己以前学习的nodejs知识点。不要学着学着,就把以前的知识点都忘光了。
环境安装
实现之前,你首先需要安装nodejs环境。因为我们写的代码需要在node环境上运行,如果你没有,那么文件会运行不了。
以下是nodejs的安装地址,如果你没有安装的话,可以先把它安装上。安装了可以忽略这一步,跳到下面一步。
前言
在上一篇文章里nodejs系列:53.cookie-下篇2-1,主要是介绍了cookie的Expires属性。
cookie
我们先看一下cookie的定义
Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序
这是百度百科上面的介绍,我们可以从里面提取出一些关键信息
- 文本文件
- 记录用户的个人信息功能
这两点,就是cookie的两大特点。特别是后面这一点,记录用户的个人信息。有时候,我们会把一些个人信息存放到cookie里,就正是利用了cookie这一特点来做的。
介绍
cookie的Expires属性,设置cookie的生存期,即cookie在浏览器中的有效时间。
我们通过一个小示例来演示一下。
实现
在cmd里,我们用node运行上一篇文章里创建好的index.js文件。
服务启动后,我们在浏览器里,访问服务器地址。
访问服务器地址后,我们在控制台的Application页签下,查看cookie。
我们可以看到,cookie保存了,同时发现cookie的有效时间也设置上了。
那么max-age是以什么为单位的呢?是分钟,还是小时呢?
我们查阅资料可知,max-age是以秒为单位的。max-age可以设置为正数,也可以设置为负数。
现在,我们设置了cookie的有效时间为正数,如果,我们设置为负数呢?
我们尝试一下,将max-age的值设置为-1,看下会怎么样
res.setHeader("Set-Cookie", ["name=alin;max-age=3600", "age=18;max-age=-1"]);
在cmd里,用node重新运行index.js文件。
在浏览器里,重新访问服务器地址。我们查看cookie
我们可以看到,虽然我们在服务器端,设置了两个cookie。但是,在浏览器端,我们只看到了一个cookie。明明设置了两个,为什么只有一个呢?
我们查阅一下资料,发现
如果maxAge为负数,则表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效。maxAge为负数的Cookie,为临时性Cookie,不会被持久化,不会被写到Cookie文件中。Cookie信息保存在浏览器内存中,因此关闭浏览器该 Cookie就消失了。
从中,我们可以知道,max-age设置为负数,cookie值不会被写到cookie文件中,就导致我们在cookie文件里,查看不到这个cookie了。
小结
本小节,主要介绍了cookie的Expires属性,该属性表示cookie的有效时间。
在服务器端,可以通过max-age属性来设置cookie的Expires值。
max-age是以秒为单位的。如果设置max-age为负数,则该cookie只会保存在内存中,不会保存在cookie文件中。当我们关闭浏览器窗口时,该cookie就会被销毁。
最后,放上自己比较喜欢的一句诗句:
千淘万漉虽辛苦,吹尽狂沙始到金 - 唐 刘禹锡《浪淘沙》