JavaScript操作Cookie
2023-09-14 08:58:00 时间
在Web开发中,我们经常使用Cookie保存一些不是非常敏高的数据。比如“下次自动登录”,“广告显示”等功能。定义是:某些网站为了辨别用户身份而存储在用户本地终端(主要是浏览器)上的数据。定义域RFC2109。
Cookie总是保存在客户端中,可分为Cookie和硬盘Cookie。内存Cookie保存在内存中,浏览器关闭之后就消失了。硬盘Cookie保存在硬盘里面,有过期时间,除非用户手动清理或者其他网页脚本处理,或者到了Cookie的过期时间。
Cookie的发明目的,因为HTTP协议是无状态的,服务器不知道用户上一次做了什么,这样浏览器和服务器交互时,服务器不知道浏览器的任何状态。服务器借助浏览器设置或读取Cookie中的信息,借此维护浏览器和服务器的会话状态。
通过document.cookie,我们可以写入cookie或读取cookie。代码如下:
!DOCTYPE html html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8"/ title /title /head body script type="text/javascript" //写入cookie function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie=c_name+"="+escape(value)+ ((expiredays==null)?"":";expires"+exdate.toGMTString()) setCookie("username", "Lee", 365); setCookie("password", "小明", 365); //读取cookie function getCookie(c_name) { if (document.cookie.length 0) { c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); return unescape(document.cookie.substring(c_start, c_end)); return ""; var temp_cookie = "username=Lee; password=%u5C0F%u660E"; var cookiename="username"; var start = temp_cookie.indexOf(cookiename+"=");//0 if(start!=-1){ start = start + cookiename.length + 1;//1是等号的长度 end = temp_cookie.indexOf(";", start);//找到分号 console.log(unescape(temp_cookie.substring(start,end))); /script /body /html
Cookie在隐私,安全和广告的问题
很多网站,特别是新闻门户和电商网站,都会在用户访问该页面时,写入 Cookie。然后你在访问其他网站或电商网站,这些网站也会读取这些cookie,当然确保可以读到cookie信息。然后后台广告服务器根据 cookie的信息,为这个网站显示广告。也就是经常在网络营销里面提到的“人群定向”。
相关文章
- javascript类和原型学习笔记
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain (Object.setPrototypeOf())
- [Javascript] Natively Format JavaScript Dates and Times
- [Javascript] Use requestIdleCallback to schedule JavaScript tasks at an optimal time
- [Javascript] Await a JavaScript Promise in an async Function with the await Operator
- [Javascript] JavaScript赋值时的传值与传址
- [Javascript] Identify and Deal with NaN in JavaScript
- 新手学JavaScript(四)----CheckBox全选与全不选
- [Javascript] Wait for the Fastest JavaScript Promise to Be Fulfilled with Promise.any()
- [Javascript] Hide Properties from Showing Up in "for ... in" Loops in JavaScript
- [Javascript] Multiply Two Arrays over a Function in JavaScript
- [Javascript] Compose multiple functions for new behavior in JavaScript
- [Javascript] Linting JavaScript with ESLint
- [Javascript] Hoisting in JavaScript
- 使用 JavaScript 编写更好的条件语句
- Atitit Cookie安全法 目录 1. cookie分为 会话cookie 和 持久cookie ,1 1.1. 安全措施1 1.2. 3. cookie的同源策略2 1.3. 安全类库
- jQWidgets 15.1.0 JavaScript UI Crack
- 已解决selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain: Cookie ‘
- Atom编辑器折腾记_(15)JS代码片段补全(插件:javascript-snippets)
- 【华为OD机试 2023】 对称美学(C++ Java JavaScript Python)