一、创建cookie
1、当用户通过浏览器访问一个页面时,服务器可以在响应哪里包含一个"Set-Cookie"头。这个头包含了一个"key=value"对的列表。key为cookie的名称,value为cookie的值。
2、例如,下面的代码片段创建一个名叫"myCookie"、值为"hello"的cookie:
try { document.cookie = "myCookie=hello" } catch (error) { console.log(error) }
3、在这个步骤中,cookie的生命周期始于它被创建的那一刻。
二、发送cookie
1、当用户每次向服务器发送请求时,浏览器都会自动将与该域相关的所有cookie信息添加到请求中的"Cookie"头中。这意味着在一个网站上创建的cookie,可以在该网站的每个页面上使用。
2、例如,下面的代码演示了如何使用cookie进行身份验证:
try { document.cookie = "authToken=34215dfg3456djl89" } catch (error) { console.log(error) }
3、在这个步骤中,cookie的生命周期取决于它何时被发送,通常是用户每一次请求页面时。
三、修改cookie
1、要修改cookie,只需要在浏览器中创建一个同名的cookie即可。
2、例如,如果要将上例中的"myCookie"更改为"value",则可以这样写:
try { document.cookie = "myCookie=value" } catch (error) { console.log(error) }
3、在这个步骤中,cookie的生命周期从修改时间开始。
四、删除cookie
1、要删除cookie,只需要在浏览器中创建一个同名的cookie,并将其过期时间设置为过去的某个时间即可。
2、例如,下面的代码演示了如何删除名为"myCookie"的cookie:
try { document.cookie = "myCookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;" } catch (error) { console.log(error) }
3、在这个步骤中,cookie的生命周期在它被删除之后立即结束。
五、cookie的过期时间
1、为了控制cookie的生命周期,可以设置一个可选的过期时间。
2、例如,下面的代码创建了一个名为"myCookie"的cookie,并将其过期时间设置为7天后:
try { let date = new Date() date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000)) let expires = "expires="+ date.toUTCString() document.cookie = "myCookie=hello; "+ expires } catch (error) { console.log(error) }
3、在这个步骤中,cookie的生命周期从被创建的时间开始,到达过期时间后结束。
六、cookie的安全性
1、通过"Secure"属性可以控制cookie的安全性,只有在加密连接(例如HTTPS)上才能发送这些cookie。
2、例如,下面的代码创建了一个名为"authToken"的安全cookie:
try { document.cookie = "authToken=34215dfg3456djl89; Secure" } catch (error) { console.log(error) }
3、在这个步骤中,只有在加密连接上访问网站时,才能在请求中发送名为"authToken"的cookie。