HTTP 状态码

  • 200 ok - 成功返回状态,对应,GET,PUT,PATCH,DELETE.
  • 201 created - 成功创建。
  • 304 not modified - HTTP缓存有效。
  • 400 bad request - 请求格式错误。
  • 401 unauthorized - 未授权。
  • 403 forbidden - 鉴权成功,但是该用户没有权限。
  • 404 not found - 请求的资源不存在
  • 405 method not allowed - 该http方法不被允许。
  • 410 gone - 这个url对应的资源现在不可用。
  • 415 unsupported media type - 请求类型错误。
  • 422 unprocessable entity - 校验错误时用。
  • 429 too many request - 请求过多。
阅读全文

REST学习了不少,但是对其的认证方式却很模糊。通常一个好的REST API应该能适应浏览器或者本地客户端的认证。我开发了一个JAVA的WEB程序,提供了一个service的REST API,一开始我计划采用HTTP session的方式来认证。HTTP session可以很方便的提供认证。无论是ajax还是传统浏览器方式基于API可以很方便的认证,但是当我在使用客服端的时候遇见了问题。于是我开始尝试无状态的认证方式。我尝试了很多认证方式,比如HTTP basic 、 数字认证、http session、cookies、xsrf等等……。现在我都不知道是使用什么才是比较适合的认证了。

HTTP session VS stateless auth token

这·两种方式有什么不同?我不是太了解。

http session:

  • 基于URL,必须提供一个url来认证
  • server必须记住一些用户信息,而且会返还session id来标记(session的实习原理)
  • 浏览器或者客服端必须每次在请求中包括这个字段,用来标示身份。(当清除cookies的时候会发生认证丢失)
  • 浏览器或者客服端不用输入认证信息,当已经认证了的时候。(浏览器会发送比如session id给server)

stateless auth token:

  • 需要请求的URL。
  • server只会返回成功与否的状态,不会返回任何key、value。
  • server会创建auth token然后发送给客服端。
  • 访问需要权限的页面的时候,要求带着auth toke。

两种方式都很容易实现。无论是在浏览器或者客服端使用。

http basic

使用SSL协议的很多WEB service网站都使用http basic 来认证。http basic 认证非常的容易实现。但是认证需要https通道,登出注销无法控制。

参考文档

注释和共享

  • 第 1 页 共 1 页

Javy Liu

author.bio


author.job


beijing