大家好,又见面了,我是你们的朋友全栈君。 Cookie:有时也用其复数形式 Cookies。...domain: cookie对于那个域下是有效的, path: 表示这个cookie影响到的路径,浏览器会根据这个配置,向指定的域中匹配的路径发送cookie。...expires: 失效时间,表示cookie何时失效的时间,如果不设置这个时间,浏览器就会在页面关闭时将删除所有的cookie,不过我们也可以自己设置过期时间。...关于读取问题 req.cookies:读取到的是我们未加密的cookie; req.signedCookies:读取我们的加密cookie。...删除cookie res.send('你好nodejs news') }) 当maxAge为0时会删除我们的cookie。
我没想出其他的用处就直接答我不知道了,还可以利用 symbol 不会被常规的方法(除了 Object.getOwnPropertySymbols 外)遍历到,所以可以用来模拟私有变量。...通常有两种方式来开启 CSP,一种是设置 HTTP 首部中的 Content-Security-Policy,一种是设置 meta 标签的方式对一些敏感信息进行保护,比如 cookie 使用 http-only...Cookie每个域名下Cookie的数量不能超过20个,每个Cookie的大小不能超过4kb有安全问题,如果Cookie被拦截了,那就可获得session的所有信息,即使加密也于事无补,无需知道cookie...,不像Cookie那样每次HTTP请求都会被携带LocalStorage的缺点:存在浏览器兼容问题,IE8以下版本的浏览器不支持如果浏览器设置为隐私模式,那我们将无法读取到LocalStorageLocalStorage...点击刷新按钮或者按 F5: 浏览器直接对本地的缓存文件过期,但是会带上If-Modifed-Since,If-None-Match,这就意味着服务器会对文件检查新鲜度,返回结果可能是 304,也有可能是
Object.getPrototypeOf() 方法返回指定对象的原型(内部[[Prototype]]属性的值)。...evil.com 向 mybank.com 发起 AJAX HTTP 请求,请求会默认把 mybank.com 对应 cookie 也同时发送过去。...Null是对象吗?为什么? null不是对象。 虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。...,即使窗口或浏览器关闭。...数据与服务器之间的交互方式, cookie的数据会自动的传递到服务器,服务器端也可以写cookie到客户端; sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存
随后设置了跨域响应头,这里的设置就是允许不同域名的网站也能请求成功的关键所在。...let query = Object.assign( {}, { cookie: req.cookies },...,然后请求网易云音乐的接口,如果请求成功了,那么处理一下网易云音乐接口返回的cookie,最后将数据都返回给前端即可,如果接口失败了,那么也进行对应的处理。...那么会进行一些处理,首先如果是https的请求,那么会设置SameSite=None; Secure,SameSite是Cookie中的一个属性,用来限制第三方Cookie,从而减少安全风险。...MUSIC_U应该就是登录后的cookie了,MUSIC_A应该是一个token,未登录情况下调用某些接口可能报错,所以会设置一个游客token: 继续: const createRequest =
无状态原因:浏览器与服务器是使用 socket 套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的 socket 连接,而且服务器也会在处理页面完毕之后销毁页面对象。...3.1、cookie 特点: 1、cookie由服务器生成,保存在浏览器端的一小段文本信息 2、cookie是以键和值得形式进行存储 3、浏览器在访问一个网站的服务器时,会自动在请求头中把和本网站相关的所有...:单位毫秒 res.cookie('age', 11); res.send("设置了cookie") }) app.get("/getCookie",(req,res)=>{...//获取cookie信息 let name = req.cookies["name"]; let age = req.cookies["age"]; res.send(`获取cookie...session req.session["name"] = "session_node" req.session["age"] = 11 res.send("设置了Session
Cookie每个域名下Cookie的数量不能超过20个,每个Cookie的大小不能超过4kb有安全问题,如果Cookie被拦截了,那就可获得session的所有信息,即使加密也于事无补,无需知道cookie...返回值:undefinedArray.prototype.forEach1 = function(callback, thisArg) { if(this == null) { throw...,比如 Null、Date 等,所以通过 typeof 来判断数据类型会不准确。...但是可以使用 Object.prototype.toString 实现。...如果将这些页面全部打包进一个 JS 文件的话,虽然将多个请求合并了,但是同样也加载了很多并不需要的代码,耗费了更长的时间。
通过map.delete去删除一个值,试图删除一个不存在的属性会返回false Object 通过delete操作符才能删除对象的一个属性,诡异的是,即使对象不存在该属性,删除也返回true,当然可以通过...Reflect.deleteProperty(target, prop) 删除不存在的属性还是会返回true。...map的阅读性更好,所有操作都是通过api形式去调用,更有编程体验 4. cookie 的有效时间设置为 0 会怎么样 Cookie过期时间设置为0,表示跟随系统默认,其销毁与Session销毁时间相同...如果我们写程序的时候不设置Cookie的有效时间,那么,Cookie的有效时间等效于会话时间。 5. const声明了数组,还能push元素吗,为什么? 可以。...] 方法4 :通过 Object.prototype.toString.call 方法来识别 console.log(Object.prototype.toString.call([]))//[object
(5)当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。(6)站点中的其他页面即使没有设置 manifest 属性,请求的资源如果在缓存中也从缓存中访问。...(7)当 manifest 文件发生改变时,资源请求本身也会触发更新。...该字段只对完全一样的URL的缓存设置生效,所以设置了缓存时间,在这个时间范围内,再次发送请求就不需要进行预检请求了。...共同点:都是保存在浏览器端、且同源的不同点: 1.cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。...localStorage:始终有效,窗口或浏览器关闭也一直保存,本地存储,因此用作持久数据; cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭 4.作用域不同
var query=querystring.parse(urlPares.query); res.end('hello world'); }).listen(80); 大部分的node教程在这里会告诉你...require("url"); var fs = require("fs"); var mime = require('mime'); /** * [[检测是否为静态资源]] * @param {Object...但是代码量也不多 var sessions = {}; var sessionKey = 'session_key'; var EXPIRES = 30 * 60 * 1000; function randString...serialize = function (name, value, option) { var pairs = [name + '=' + encodeURI(value)]; //设置...= parseCookie(req.headers.cookie); var id = req.cookies[sessionKey]; if (!
这种方式的缺点是有些情况下 referer 可以被伪造,同时还会把搜索引擎的链接也给屏蔽了。所以一般网站会允许搜索引擎的页面请求,但是相应的页面请求这种请求方式也可能被攻击者给利用。...在设置 cookie 属性的时候设置 Samesite ,限制 cookie 不能作为被第三方使用,从而可以避免被攻击者利用。...ES6 之前使用 prototype 实现继承Object.create() 会创建一个 “新” 对象,然后将此对象内部的 [Prototype] 关联到你指定的对象(Foo.prototype)。...Object.create(null) 创建一个空 [Prototype] 链接的对象,这个对象无法进行委托。...= Object.create(Foo.prototype);// 必须设置回正确的构造函数,要不然在会发生判断类型出错Bar.prototype.constructor = Bar; // 必须在上一步之后
由于在js中,变量的作用域属于函数作用域,在函数执行后,作用域就会被清理,内存也会被回收,但是由于闭包是建立在一个函数内部的 子函数,由于子函数可以访问上级作用域的原因,即使上级函数执行完,作用域也不会随之销毁...two总结:尤其是es6引入了Spread operator延展操作符后,即使参数是数组,可以使用call了。...get/setDate():返回或设置日期。 get/setFullYear():返回或设置年份,用四位数表示。 get/setYear():返回或设置年份。...get/setMonth():返回或设置月份。0为一月 get/setHours():返回或设置小时,24小时制 get/setMinutes():返回或设置分钟数。...get/setSeconds():返回或设置秒钟数。 get/setTime():返回或设置时间(毫秒为单位)。 89.
(function(){}) // "[object Function]"Object.prototype.toString.call(null) //"[object Null]"Object.prototype.toString.call...一般变量声明了但还没有定义的时候会返回 undefined,null 主要用于赋值给一些可能会返回对象的变量,作为初始化。...其实 null 不是对象,虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。...当我们对两种类型使用 typeof 进行判断的时候,Null 类型化会返回 “object”,这是一个历史遗留的问题。...如果设置为 /path/,则只有路径为 /path/ 的页面可以访问该 Cookie。如果设置为 /,则本域名下的所有页面都可以访问该 Cookie。Domain,即可以访问该 Cookie 的域名。
如果在 COOKIE 中设置了“httpOnly”属性,则通过程序(JS 脚本、applet 等)将无法读取到COOKIE 信息,防止 XSS 攻击的产生 。...被篡改的签名 cookie 会被服务器拒绝,并且 cookie 值会重置为它的原始值。...库) 6. rolling - 在每次请求时强行设置cookie,这将重置cookie过期时间(默认:false) 7. resave - 强制保存session即使它并没有变化 (默认: true,...(默认:true) 10. unset - 控制req.session是否取消(例如通过 delete,或者将它的值设置为null)。...如果给定两个参数,第一个参数指定第一个返回记录行的初始量(默认初始为0),第二个参数指定返回记录行的最大数目。
1. cookie 通用hookCookie Hook 用于定位 Cookie 中关键参数生成位置,以下代码演示了当 Cookie 中匹配到了 v 关键字, 则插入断点(function () {...var cookieTemp = ''; Object.defineproperty(document, 'cookie', { set: function (val) {...= -1) { debugger } console.log('Hook捕获到cookie设置->', val);...;Function.prototype.constructor = function (a) { // 如果参数为 debugger,就返回空方法 if(a == "debugger") {...// 当然也可以不判断,直接返回空,有很多种写法 if(time == 0x7d0) { return function () {}; } // 如果时间参数不为
1.处于常规流中时,如果width没有设置,会自动填充满父容器 2.可以应用margin/padding 3.在没有设置高度的情况下会扩展高度以包含常规流中的子元素 4.处于常规流中时布局时在前后元素位置之间...cookie 有效期:cookie在设置的有效期内有效,默认为浏览器关闭;sessionStorage在窗口关闭前有效,localStorage长期有效,直到用户删除 共享:sessionStorage...不能共享,localStorage在同源文档之间共享,cookie在同源且符合path规则的文档之间共享 localStorage的修改会促发其他文档窗口的update事件 cookie有secure属性要求...(); Object.create(): var obj = Object.create(Object.prototype); 复制代码 评价一下三种方法实现继承的优缺点,并改进 function Shape...; // 方法3 Rect.prototype = Object.create(Shape.prototype); Rect.prototype.area = function () { //
而 typeof 也存在弊端,它虽然可以判断基础数据类型(null 除外),但是引用数据类型中,除了 function 类型以外,其他的也无法判断。...可以看到,上述两种方法都有弊端,并不能满足所有场景的需求 如果需要通用检测数据类型,可以采用Object.prototype.toString,调用该方法,统一返回格式“[object Xxx]” 的字符串...null 和 undefined 相等。存在 NaN 则返回 false全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回 true。即类型相同,值也需相同。...写一个返回数据类型的函数,要求自定义的类实例化的对象返回定义的类名 function myTypeof(data) { var toString = Object.prototype.toString...storage在存储数据的大小上面秒杀了cookie,现在基本上很少使用cookie了。
\)/i); if (args == null) throw Error('can not match method parameters'); method = args[0];...、header)进行解析, 也可以标记某个参数是一个复杂的查询参数,可以指定这个参数的类型。...或者也可以理解成它是一个系统级别的静态字典。 那我们把对参数的一些特别设置都通过reflect-metadata保存下来,其实这里我们自己使用一个对象来保存也是可以的。...': return getCompatibleParam(req.cookies, parameterName) case 'form':...参数的自动解析大致就到这里了,嗯,这部分代码可能有点小逻辑。又加上没有注释有点难理解。不过我觉得这样挺好的,哈哈哈
var cookieTemp = ''; Object.defineproperty(document, 'cookie', { set: function (val)...= -1) { debugger } console.log('Hook捕获到cookie设置->', val);...; Function.prototype.constructor = function (a) { // 如果参数为 debugger,就返回空方法 if(a == "debugger"...// 当然也可以不判断,直接返回空,有很多种写法 if(time == 0x7d0) { return function () {}; } //...如果本文对您有帮助,也请帮忙点个 赞 + 在看 哈!❤️ 在看你就赞赞我!
Object.prototype.toString.call() 一种最好的基本类型检测方式 Object.prototype.toString.call() ;它可以区分 null 、...(Object.prototype.toString.call(null)); // "[object Null]" console.log(Object.prototype.toString.call...是保存在客户端的,一般由后端设置值,可以设置过期时间 储存大小只有4K 一般用来保存用户的信息的 在http下cookie是明文传输的,较不安全 cookie属性有 http-only:不能被客户端更改访问...,防止XSS攻击(保证cookie安全性的操作) Secure:只允许在https下传输 Max-age: cookie生成后失效的秒数 expire: cookie的最长有效时间,若不设置则cookie...你竟然看完了,看来你距离大神就差一点点了! ok,今天的文章就到这里了。 如果你觉得文章不错的话,可以收藏点赞,也可以关注上我,今后我可能会根据一些大公司的面试题进行在总结。
领取专属 10元无门槛券
手把手带您无忧上云