资讯专栏INFORMATION COLUMN

HTTP cookie

miracledan / 1524人阅读

摘要:它们还可以用来记住用户之前输入的表单字段的任意信息,比如姓名地址密码和信用卡号。这个属性表示的存储时间,存储的单位标准是,即格林威治时间。设置了,就禁止页面修改属性。

cookie
HTTP cookie是由网站发送的一小块数据,用户在浏览时将其存储在用户的web浏览器上
概念

它以键值对的方式信息存储于用户硬盘,保存有关访问者的信息,它既可以在服务端设置也可以在客户端设置。

cookie被设计成一个可靠的机制,可以让网站记住有状态的信息(比如在网上商店里添加的商品),或者记录用户的浏览活动(包括点击特定的按钮,登录,或者记录过去访问过的页面)。它们还可以用来记住用户之前输入的表单字段的任意信息,比如姓名、地址、密码和信用卡号。

cookie的常设置的属性:Domain、Path、Expires/Max-age、HTTP、Secure,接下来我们以express作为服务端来看看cookie这几个属性

属性

Domain、Path

这两个属性表示cookies在哪个主域下的哪个路径下表示cookies可以共享。

比如,我在服务端在两个路由页面设置cookie,当访问/和/Child后,cookie信息是页面共享的


但修改path后,只能在path设置的路径下,可以共享cookie,而其它页面是不能共享。

app.get("/Child", function(req, res, next) {
    res.cookie("nameChild", "Child", { path: "/Child" });
    res.render("index", { title: "Child" });
});

Expires/Max-age

这个属性表示cookie的存储时间,存储的单位标准是GMT,即格林威治时间。
例如设置time=1的存储时间为60秒

var date = new Date();
date.setTime(date.getTime() + 60000);
document.cookie = "time=1" + ";expires=" + date.toUTCString();

max-age也是设置过期时间,但是它的单位是毫秒

同样将expire设置成一个过去的时间或者讲max-age=0,都能够达到删除cookie的效果

HttpOnly和secure

这两个属性都是基于cookie安全的,单位都是布尔值。

设置了HttpOnly,就禁止页面js修改cookie属性。

设置secure为true后,客户端只能通过https协议才能把cookie发送到服务端

不足

cookie是明文传输,容易被拦截或者捕获内容

cookie容量只有4KB,容量小

每次发送cookie,cookie都被添加到request header上,意味着cookie越大,请求头就越大,响应的时间就越长

总结

当访问web站点的,浏览器首先检索有没有与该站点相关联的cookie,如果有,就把cookie和并到请求头那里,随http请求一并发送到服务端,服务端和客户端都可以操作cookie,有一些操作cookie的属性,比如domain和path限制cookie的作用范围,Expires/Max-age决定cookie的存储时限,HttpOnly和secure限制cookie相关安全的操作,
cookie因为自身特点,适合存储一些不敏感,容量小的数据。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94028.html

相关文章

  • http协议概览

    摘要:如果想所有名下的二级域名都可以使用该,需要设置的参数,例如新建设置域名设置路径设置有效期输出到客户端的有效期的决定着的有效期,单位为秒。的安全属性协议不仅是无状态的,而且是不安全的。 这里我只是对一些知识进行简单的整理,方便自己理解记忆,还有很多不完善的地方,更多细节,需要查看书籍或者其他文章 http协议的发展过程 HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(p...

    Betta 评论0 收藏0
  • http协议概览

    摘要:如果想所有名下的二级域名都可以使用该,需要设置的参数,例如新建设置域名设置路径设置有效期输出到客户端的有效期的决定着的有效期,单位为秒。的安全属性协议不仅是无状态的,而且是不安全的。 这里我只是对一些知识进行简单的整理,方便自己理解记忆,还有很多不完善的地方,更多细节,需要查看书籍或者其他文章 http协议的发展过程 HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(p...

    mdluo 评论0 收藏0
  • Cookic

    摘要:追踪记录和分析用户行为。属性返回一个布尔值,表示浏览器是否打开功能不同浏览器对数量和大小的限制,是不一样的。请求的发送浏览器向服务器发送请求时,每个请求都会带上相应的。属性必须为绝对路径,默认为当前路径。属性值必须是当前发送的域名的一部分。 概述Cookie 与 HTTP 协议HTTP 回应:Cookie 的生成HTTP 请求:Cookie 的发送Cookie 的属性Expires,M...

    phoenixsky 评论0 收藏0
  • 前端分享之cookie的使用及单点登录

    摘要:两个域之间是不是存在跨域问题,主要是根据协议域名端口号这三个点进行判断,只要有一个不一样就是跨域。例如协议不同与域名不同与端口号不同与浏览器默认情况下无法主动跨域向后端发送,需要在前端请求时加入配置项。据此,可以实现单点登录。 cookie是什么 cookie的英文意思是饼干。在计算机术语中指服务端存放在客户端的一段数据。这段数据在客户端每次进行http请求时会自动加在http请求报文...

    Backache 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<