java restlet 教程_java – 如何使用RESTlet在RESTful Web服务中强制执行“会话”?

1) how do we authenticate and authorize Client in Step 2 and 3 if

there is no session maintained on the server ?

2) does client need to send some additional information with each

request ?

是.您必须在每个请求中发送身份验证/授权数据.这将阻止服务器“记住”你是谁(即无状态服务器,没有会话)

3) How do we retrieve the client specific Shopping Cart in Step 3 ?

我们来问一个不同的问题:如果服务器重新启动会发生什么?您是否希望所有购物车数据丢失?可能不会.你应该把它存放在一个重新启动的地方.应用持久存储.可能在服务器或客户端…

…现在,如果您的客户端重启?您可以选择使用POST请求(用户添加第一个项目)为该用户创建购物车资源,或者在客户端登录时(浪费)创建购物车资源.然后使用PUT / DELETE继续更新购物车,并使用GET进行读取.

应该在数据库?可能,取决于这是怎么想要的.如果它必须坚持下去,这是一个很好的地方来保持它,以便它可以在重新启动后生存.

那么如何接收客户特定的购物车?那么你只需要发送GET资源的请求!而已!第一个POST将在适当的URL创建一个资源,然后可以使用它.

稳定的网络服务还具有安静的网址,这是设计的关键部分.

4) Does the client need to send it’s Shopping Cart that was

created/returned by server in Step 2 again in Step 3 ?

不,如上所述.但是,如果您在客户端使用cookies或LocalStorage或其他信息,那么也许您会这样做.

ObvIoUsly,this is the simplest use case and so every one developing

RESTful web services must be designing their app to handle this. What

is the best and most common way to handle session management,

authentication,authorization in RESTful web services using RESTLet ?

是.这很简单,但是需要一段时间来思考“资源”而不是“服务”.在安静的设计中,一切都是(或可以)一个资源,包括交易,购物车等,

但是,授权/认证是http请求数据包的一部分,并随每个请求一起发送.我建议你阅读那些.

If we have to maintain cache on server side with the client’s data

then how is this different from server maintaining sessions on our

behalf ?

巨大差距!您是否为高效缓存或维持会话?如果系统重新启动,您的系统将在空缓存上无缝工作?如果是,您正在缓存您正在维持状态的其他表现.

我强烈建议您阅读Richardson& Ruby来阐述上述概念,并且深入了解如何设计安静的服务…它需要一些习惯.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值