cookie

Cookie是客户端存在本地的一个数据,简单来说就是本地缓存。

Cookie曾一度用于客户端数据的存储,因当时并没有其它合适的存储办法而作为唯一的存储手段,但现在随着现代浏览器开始支持各种各样的存储方式,Cookie渐渐被淘汰。

由于浏览器的每次请求都会携带Cookie数据,会带来额外的性能开销,于是cookie成为了记录用户信息的专属,Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。

Cookie有两个方式注入,一个是服务端直接写入,另外一个是JavaScript创建。JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。

document.cookie通过分号;接收三个参数:

document.cookie="key=value; expires=time; path=/";

key和value就是要存储的键值对;

expires是存储时间,UTC和GMT时间都可以,如果没有这个值默认浏览器关闭就删除cookie;

path是路径,默认情况下是当前页面,如果你要某个子页面不希望其他子页面能获取就要设置这个path;

我们封装一个设置、删除、获取的方法:

var cookie = {    set: function(key, val, time){//设置cookie方法        
var date = new Date();        
var expiresDays = time;        
date.setTime(date.getTime() + expiresDays*24*3600*1000);        
document.cookie = key + "=" + val +";expires=" + date.toGMTString();    
},    
get: function(key){        
var getCookie = document.cookie.replace(/[ ]/g,"");        
var arrCookie = getCookie.split(";")        
var res;        
for(var i = 0;i < arrCookie.length;i++){            
var arr = arrCookie[i].split("=");            
if(key == arr[0]){                
res = arr[1];                
break;            
}        
}     
return res;    
},    
remove: function (key) {        
var date = new Date();       
var expiresDays = date.setTime(date.getTime());        
document.cookie = key + "=;expires=" + date.toGMTString();    
}};

其实删除就是给设置一个过期时间。因为document.cookie获取到的cookie中间有空格,所以要正则去空格。

Cookie在JavaScript的操作很简单,不过我们要注意,不要随便设置cookie,因为cookie会被携带上发送到服务端,影响性能。所以客户端最好不要设置cookie,如果有需要的话让服务端自己注入cookie。

已更新到:https://www.npmjs.com/package/wade-tools

本文分享自微信公众号 - coding个人笔记(gh_2ce38b49dae1),作者:wa'd

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 记一次后台注入cookie

    快两个月没有日记了,过了将近一个月猪一样的生活,天天吃了睡睡了吃,也都不学习。这两星期在家办公,在调试后台注入cookie遇见了一些问题,记录一下。

    wade
  • 雅虎军规第四天

    1、 压缩再压缩,一个HTM加载的时候图片的加载时间真的很长很长,所以能不使用图片就不要使用,能压缩绝对要压缩,图标什么的都使用字体图标。

    wade
  • CSRF攻击

    CSRF叫做跨站请求伪造攻击,也有叫XSRF的,其实都差不多,你也可以认为是XSS和CSRF的结合。对于这个攻击原本我是不怎么理解的,写了个接口,然后试了一下,...

    wade
  • js对cookie的操作

    cookie是网站为了标识用户身份而存储在用户本地终端上的数据,一般这些数据都会进行加密,以防止数据篡改而造成用户信息泄露。cookie数据始终在同源的http...

    无邪Z
  • Cookie

    2.Chrome浏览器中F12打开,开发者工具 —— Application面板中查找cookie即可

    jinghong
  • Cookie的写入和读取的过程

    对于一个普通的网站进行分析查看:服务器返回个浏览器端的cookie和这个cookie到期到的事件

    静心物语313
  • 爬虫之FileCookieJar

    人生不如戏
  • 关于新型漏洞https cookie注入漏洞攻击剖析

    0x01 什么是cookie? 主要是验证用户的身份的唯一标识。 0x02 cookie注入的原理是什么? 既然是cookie注入,不管是http,...

    Jumbo
  • Flask cookie的使用

    在web项目中,设置cookie和session是基本必不可少的一个功能,而Flask设置cookie是使用make_response返回响应信息的时候设置的。...

    Devops海洋的渔夫
  • 【XSS】利用XSS窃取用户Cookie

    XSS的用途之一就是窃取用户的cookie,攻击者利用XSS在网页中插入恶意脚本,一旦用户访问该网页,cookie就会自动地发送到攻击者的服务器中去。

    一名白帽的成长史

扫码关注云+社区

领取腾讯云代金券