http协议是无状态的。下一次去访问一个页面时并不知道上一次对这个页面做了什么。

无状态的应用层面的原因是:浏览器和服务器之间的通信都遵守HTTP协议。

根本原因是:浏览器与服务器是使用Socket套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的Socket连接,而且服务器也会在处理页面完毕之后销毁页面对象。

 

有时需要保存下来用户浏览的状态,比如用户是否登录过,浏览过哪些商品等。 实现状态保持主要有两种方式:

  • 在客户端存储信息使用Cookie。
  • 在服务器端存储信息使用Session。

cookie

cookie及其使用

cookie是由服务器生成,存储在浏览器端的一小段文本信息。
cookie的特点:

  • 1)以键值对方式进行存储。
  • 2)通过浏览器访问一个网站时,会将浏览器存储的跟网站相关的所有cookie信息发送给该网站的服务器。request.COOKIES
  • 3)cookie是基于域名安全的。www.baidu.com www.tudou.com
  • 4)cookie是有过期时间的,如果不指定,默认关闭浏览器之后cookie就会过期。

 

cookie使用示例

设置cookie

复制代码
def set_cookie(request):     """设置cookie信息"""     response = HttpResponse("设置cookie")     # 设置一个cookie信息,名字为num,值为1    response.set_cookie('num', 1)        # 返回response    return response
复制代码

获取cookie

复制代码
def get_cookie(request):     """获取cookie信息"""    # 取出cookie num的值    num = request.COOKIES['num']     return HttpResponse(num)
复制代码

设置cookie过期时间

复制代码
def set_cookie(request):     """摄制cookie信息"""     response = HttpResponse("设置cookie")     # 设置一个cookie信息,名字为num,值为1,并且设置 cookie的过期时间为2周,两种方式    response.set_cookie('num', 1, max_age=14*24*3600)     # response.set_cookie('num', 1, expires=datetime.now()+timedelta(days=14))    return response
复制代码

设置多个cookie