服务端和客户端之间保持状态--cookie的使用

1.cookie

具体使用:服务端先设置cookie信息,并在客户端请求时把这个cookie信息发送给客户端,客户端会自动保存cookie的key/value值,下次向服务端发送请求时,客户端会自动带上cookie信息,服务端会根据cookie信息来识别状态。(之前是否访问过)

 http 是一种无状态协议,浏览器请求服务器是无状态的。

  • 无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。

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

  • 有时需要保持下来用户浏览的状态,比如用户是否登录过,浏览过哪些商品等。

@app.route('/')
def helloworld():
    return 'hello world'

# 为了有状态保持, 我们需要存储一些有用的信息cookie(浏览器)
@app.route('/login')
def set_cookie():
    resp = make_response('在服务端先设置cookie值')
    # set_cookie(key, value, 有效期)
    resp.set_cookie('cookies','lian',max_age = 7890)
    # 删除cookie
    # resp.delete_cookie('cookies')
    return resp

# 采用request得到cookie
@app.route('/get_cookie')
def get_cookie():
    cookie_name = request.cookies.get('cookies')
    return cookie_name

注意问题:

  • Cookie是存储在浏览器中的一段纯文本信息,建议不要存储敏感信息如密码,因为电脑上的浏览器可能被其它人使用

  • Cookie基于域名安全,不同域名的Cookie是不能互相访问的

    • 如访问itcast.cn时向浏览器中写了Cookie信息,使用同一浏览器访问baidu.com时,无法访问到itcast.cn写的Cookie信息

    • 浏览器的同源策略

当浏览器请求某网站时,会将本网站下所有Cookie信息提交给服务器,所以在request中可以读取Cookie信息 。

猜你喜欢

转载自blog.csdn.net/longting_/article/details/80671851