这是我参与2022首次更文挑战的第16天,活动详情查看:2022首次更文挑战
cookie
一、cookie概念
http协议是无状态的协议,服务器不能记住客户端的状态,cookie可以用来记录用户的状态,用于进行多个请求之间的数据共享。cookie是http协议定义的规范,是服务器发送并暂时存储在客户端的一个小纸条,便于服务器识别这个客户端。当客户端第一次向服务器发送请求时,服务器可以向客户端响应一个cookie,cookie里面可以保存数据,客户端接受到服务器端响应的cookie后会保存起来。当客户端再一次访问同一个网站时,客户端会把cookie的数据携带到访问的服务器中去,这样服务器就会将特定的数据如网页返回给客户端。
二、传递原理
客户端接收的cookie的数据是通过设置响应头名称Set-Cookie响应头的值从服务器传输过来。客户端拿到Set-Cookie之后,会根据http协议解析Set-Cookie,保存cookie,当之后再次请求服务器时,客户端会报cookie里的数据以Cookie:username=*** 的方式发送到服务器。
三、cookie的类别
不同类别的cookie有不同的生命周期,即客户端获取到cookie之后如何保存以及保存多久。
- 内存cookie:保存在客户端(浏览器)内存中,当关闭浏览器时,cookie被清除
- 硬盘cookie:保存在用户的硬盘上,即使关闭设备,重启设备,cookie也不会被清除
- 追杀cookie:将保存到客户端的cookie清除掉
四、应用
服务器发送cookie(PHP为例)
PHP语言中,通过setcookie() 函数设置 cookie,它有三个参数,第一个参数表示需要传输数据的名称,第二个参数表示需要传输数据的具体的值,第三个参数表示cookie保存的时间,也就是多久之后清空这个cookie。
setcookie("user", "Mick", 3600);
客户端获取cookie
var cookies=document.cookie;