什么是Cookie(翻译:曲奇饼干)
Cookie是存
储在浏览器中的一段纯文本信息(简单的说就是浏览器缓存),用来记录用户的使用情况并将其存储在本地设备中,当用户访问服务器时会将Cookie附带上,服务端通过读取Cookie的记录,来维持用户与服务器的会话状态。
Cookie怎么来的
Cookie是由服务器生成的,通常以键值对的格式呈现(键值由服务器端开发者自行定义),当用户通过了浏览器访问服务器时,服务器会在返回数据的时候把Cookie传给浏览器(建议不要存储敏感信息,因为浏览器可能被多人使用)。
为什么要用Cookie
Cookie是由HTTP服务器设置的,而HTTP协议是一种无状态协议,浏览器与服务器使用Socket套接字进行通信,当服务器将请求结果返回给浏览器之后就会关闭当前的Socket连接并释放资源,所以每次请求数据都需要建立新的连接。 Cookie的出现弥补了这个缺点,当浏览器向服务器发送请求时,会将浏览器中存储的跟网站相关的所有Cookie信息提交给网站服务器,服务器通过Cookie中的信息来验证用户身份和判断HTTP传输状态,并将符合条件的数据返回给浏览器。
Cookie的特点
Cookie是基于作用域设计的,也就是说同一域名下只能访问到当前域名下的Cookie信息,无法访问到其他域名的Cookie信息的。
怎么设置Cookie
Django可以通过HttpResponse来
响应对象的set_cookie,设置好对应的视图和路由,只要通过浏览器访问该路由,浏览器就会自动获取到set_cookie值并存入到本地(当浏览器正在运行时通常都存在内存中,当浏览器关闭时通常会存入硬盘中)。
Cookie常用参数
在设置Cookie时可以多参数定义,这个可以根据自己的需求来定义,最少要有key和value,其他可省略不填,方法是:response.set_cookie('键', '值')
。
key:键
value:值
max_age:多久后过期,时间为秒,默认为None,临时cookie设置即关闭浏览器就消失
expires:过期时间,具体时间
path:生效路径,默认‘/’
domain:生效的域名,你绑定的域名
secure:HTTPS传输时应设置为true,默认为false
httponly:值应用于http传输,这时JavaScript无法获取