RESTful Web Service - http身份登录认证的实现和使用(一)

RESTful Web Service - http身份登录认证的实现和使用(一)

一、概述:

                 因为RESTful的无状态特性,导致无法知道当前的请求方是否可靠,所以不得不对每次请求进行验证。但是如何更语义化的将需要验证的信息附加到HTTP里呢?现在比较常见的方式是把验证信息作为参数发送过去,但是这样会违反RESTful的原则。例如,GET /user/1/xx验证信息xx。所以REST 服务的安全,一般依赖于HTTP认证,幸好的是HTTP协议本身定义了2种认证方式,Basic、Digest,另个我看其他论坛里提到了Token也可以,这些都有标准的实现的开源包。REST属于webService一种,他的安全是后台服务的安全。

二、restFull webservice 为什么要用Base和Digest方式,这两种方式又是什么意思?

  • 面对用户认证的问题。最常见的实现方式一般是这样的:用户提交一个含有用户名和密码的表单,服务端脚本验证其合法性,如果通过验证,则在Session里标识一下,如此一来,在同一个Session周期里,用户就维持了自己的认证状态。基于Session的认证最大的问题在于它不符合REST风格,更直接一点说,它破坏了HTTP的无状态特性,从而对可扩展性造成障碍。

          RFC2617里规定的两种标准的认证方式(Baisc,Digest),和Session方式最根本的不同是,它们是符合HTTP无状态特性的,所以相对而言更值得推荐。

  • 什么是HTTP Basic Authentication?直接看http://en.wikipedia.org/wiki/Basic_authentication_scheme吧。在你访问一个需要HTTP Basic Authentication的URL的时候,如果你没有提供用户名和密码,服务器就会返回401,如果你直接在浏览器中打开,浏览器会提示你输入用户名和密码(google浏览器不会)。
  • 要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法:一是在请求头中添加Authorization: Authorization: "Basic 用户名和密码的base64加密字符串"。二是在url中添加用户名和密码:




待续。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值