Cookie
【Cookie】HTTP被设计为”无状态”, 在一次请求和下一次请求之间没有任何状态保持,我们无法根据请求的任何方面(IP地址,用户代理等)来识别来自同一人的连续请求。我们会从较低的层次(cookies)开始,然后过渡到用高层的工具来搞定会话,用户和注册的问题。
Cookies
cookies 是浏览器为 Web 服务器存储的一小段信息。 每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的cookies
原理
GET / HTTP/1.1
Host: google.com
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: PREF=ID=5b14f22bdaf1e81c:TM=1167000671:LM=1167000671;
expires=Sun, 17-Jan-2038 19:14:07 GMT;
path=/;
domain=.google.com
Server: GWS/2.1
GET / HTTP/1.1
Host: google.com
Cookie: PREF=ID=5b14f22bdaf1e81c:TM=1167000671:LM=1167000671
存取cookie
取cookie,每一个
HttpRequest
对象都有一个COOKIES
对象,该对象的行为类似一个字典,你可以使用它读取任何浏览器发送给视图(view)的cookiesdef show_color(request):
if "favorite_color" in request.COOKIES:
return HttpResponse("Your favorite color is %s" %request.COOKIES["favorite_color"])
else:
return HttpResponse("You don't have a favorite color.")
写cookies,你需要使用 HttpResponse对象的 set_cookie()方法。 这里基于 GET 参数来设置 favorite_color
def set_color(request):
if "favorite_color" in request.GET:# Create an HttpResponse object...
response = HttpResponse("Your favorite color is now %s" %request.GET["favorite_color"])# ... and set a cookie on the response
response.set_cookie("favorite_color",
request.GET["favorite_color"])return responseelse:
return HttpResponse("You didn't give a favorite color.")
你可以给 response.set_cookie() 传递一些可选的参数来控制cookie的行为
参数 | 缺省值 | 描述 |
---|---|---|
max_age | none | cookie需要延续的时间(以秒为单位) |
expires | none | cookie失效的实际日期/时间 |
path | / | cookie生效的路径前缀 |
domain | none | 这个cookie有效的站点 |
False | false | 如果设置为 True,浏览器将通过HTTPS |
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长