Cookie规范

  • Cookie大小上限为4KB;
  • 一个服务器最多在客户端浏览器上保存20个Cookie;
  • [x] 一个浏览器最多保存300个Cookie;

    上面的数据只是HTTP的Cookie规范,但在浏览器大战的今天,一些浏览器为了打败对手,为了展现自己的能力起见,可能对Cookie规范“扩展”了一些,例如每个Cookie的大小为8KB,最多可保存500个Cookie等!但也不会出现把你硬盘占满的可能!
    注意,不同浏览器之间是不共享Cookie的。也就是说在你使用IE访问服务器时,服务器会把Cookie发给IE,然后由IE保存起来,当你在使用FireFox访问服务器时,不可能把IE保存的Cookie发送给服务器。

    Cookie与HTTP头

    Cookie是通过HTTP请求和响应头在客户端和服务器端传递的:

  • Cookie:请求头,客户端发送给服务器端;

  • 格式:Cookie: a=A; b=B; c=C。即多个Cookie用分号离开; Set-Cookie:响应头,服务器端发送给客户端;
  • 一个Cookie对象一个Set-Cookie: Set-Cookie: a=A Set-Cookie: b=B Set-Cookie: c=C

    Cookie的覆盖

    如果服务器端发送重复的Cookie那么会覆盖原有的Cookie,例如客户端的第一个请求服务器端发送的Cookie是:Set-Cookie: a=A;第二请求服务器端发送的是:Set-Cookie: a=AA,那么客户端只留下一个Cookie,即:a=AA。

    django中的cookie语法

    设置cookie

    默认存储在内存中 ```python rep = HttpResponse(…) 或 rep = render(request, …) 或 rep = redirect()

rep.set_cookie(key,value,…) rep.set_signed_cookie(key,value,salt=’加密盐’,…) 

  1. <a name="gn4S7"></a>
  2. ### 获取cookie
  3. request.COOKIES
  4. <a name="4DKWi"></a>
  5. ### 删除cookie
  6. ```python
  7. response.delete_cookie("cookie_key",path="/",domain=name)