当前位置: 首页 > Web前端 > HTML

web前端优秀程序员分享cookie知识

时间:2023-04-02 11:21:46 HTML

web前端优秀程序员分享cookie知识。今天,小编为大家带来了新手必看的干货。一起来看看吧。  1。cookies的出现  浏览器与服务器之间的通信,少不了HTTP协议,但是由于HTTP协议是无状态的,服务器不知道浏览器上次做了什么样的操作,所以严重的Blocks执行的交互式网络应用程序。  针对以上问题,网景程序员创造了Cookie。  2。Cookie传输  在实现Cookie标准的过程中,服务器需要向任何HTTP请求发送Set-CookieHTTP头作为响应的一部分:  1。设置Cookie:名称=值;到期=格林威治标准时间2019年9月3日星期二14:10:21;路径=/;域名=.xxx.com;  浏览器会存储这样的cookies,并为后续的每次请求添加cookiesHTTP请求头被发回服务器:  1。Cookie:name=value  服务器通过验证cookie值来判断浏览器向哪个用户发送请求。  3。浏览器中的Cookie  浏览器中的Cookie主要由以下部分组成:  ·名称:cookie的唯一名称,必须进行URL编码。(同名会被覆盖)  ·值:必须是URL编码。  ·域:默认情况下,cookie在当前域下有效,您也可以设置该值以确保其在其子域下有效。  ·Path(路径):指定cookie在哪个路径下有效,默认为当前路径。  ·过期时间(expires):默认情况下,cookie会在浏览器会话结束时自动删除;您还可以设置一个GMT格式的日期来指定一个特定的删除日期;如果设置的日期是之前的日期,cookie将被立即删除。  ·安全标志(secure):指定后,只允许向https协议发送cookies。  浏览器在发送请求时,只会将名称和值添加到请求头的Cookie字段中,并发送给服务器。  浏览器提供了一个非常糟糕的API来操作cookies:  1。文档.cookie  通过上述方法可以写入Cookie,一次只能写入一个Cookie字符串:  1。document.cookie='a=1;安全的;path=/'  也可以用这个方法读取cookie:  1。document.cookie//"a=1"  由于上述方法对cookie的操作不直观,所以通常会写一些函数来简化cookie的读取、设置和删除操作。  cookie设置操作需要以下几点:  name和value的URL编码处理,即使用JavaScript中的encodeURIComponent()方法;expires需要传入一个GMT格式的日期,需要处理成更简单的写法,比如:设置秒数的方式;只注意安全属性名称;  每条信息都需要使用分号和空格。  1。functionsetCookie(key,value,attributes){  2.if(typeofdocument==='undefined'){  3.返回  4.}  5.attributes=Object.assign({},{  6.path:'/'  7.},attributes)  8.  9.让{域、路径、过期、安全}=属性  10.  11。if(typeofexpires==='number'){  12.expires=newDate(Date.now()+expires*1000)  13.}  14。if(expiresinstanceofDate){  15.expires=expires.toUTCString()  16.}否则{  17.过期=''  18.}  19.  20。key=encodeURIComponent(key)  21.value=encodeURIComponent(value)  22.  23。让cookieStr=${key}=${value}  24.  25.如果(域名){  26.cookieStr+=;域名=${域名}  27.}  28.  29.如果(路径){  30。cookieStr+=;路径=${路径}  31.}  32.  33.如果(过期){  34.cookieStr+=;过期=${过期}  35.}  36.  37.如果(安全){  38.cookieStr+=;安全  39。}  40.  41.return(document.cookie=cookieStr)  42.}  Cookie读取操作需要注意name和value的URL解码,就是调用JavaScript中的decodeURIComponent()方法:  1.functiongetCookie(name){  2.if(typeofdocument==='undefined'){  3.返回  4.}  5.让饼干=[]  6。让jar={}  7.document.cookie&&(cookies=document.cookie.split(';'))  8.  9.for(leti=0,max=cookies.length;i