bad*_*ash 20 python rest stateless flask
在阅读了关于REST的介绍性文章(Fielding的论文和其他)后,我对无状态的看法是服务器端不应该有会话对象.然而,我看到Flask(以及我不知道的不同技术中的其他REST框架)为我们提供了一个会话对象,用于在此示例中在服务器上存储信息:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
...
Run Code Online (Sandbox Code Playgroud)
当然,我误解了REST的无国籍状态.那么,它真的是什么?
在REST中引入无状态约束的目的包括提高可见性,可靠性和可伸缩性.这意味着代理和其他中介能够更好地参与涉及自描述无状态消息的通信模式,服务器死亡和故障转移不会导致会话状态同步问题,并且很容易添加新服务器以再次处理客户端负载需要同步会话状态.
REST通过许多机制实现无状态:
在最后一点暴露了无状态的缺点:需要某种会话状态的应用程序在单个请求的持续时间之后持续存在,需要将该状态作为响应消息的一部分发送回客户端.下次客户端想要发出请求时,状态将再次转移到服务,然后再转移回客户端.
你可以从这里获得更多信息http://soundadvice.id.au/blog/2009/06/
| 归档时间: |
|
| 查看次数: |
7229 次 |
| 最近记录: |