HTTP AUTH 那些事

原创 2012年02月13日 15:28:58

谨以此文献给那些需要实现HTTP AUTH的“程序猿”们。


关于HTTP AUTH的文档不多。

RFC在 http://www.ietf.org/rfc/rfc2617.txt

wiki在 http://en.wikipedia.org/wiki/Basic_access_authentication


使用HTTP AUTH需要在server端配置http auth信息(一般是webserver启动的时候从配置文件里面读取相关信息)。我用中文简述一下http auth的过程:

  • 客户端发送http请求
  • 服务器发现配置了http auth,于是检查request里面有没有"Authorization"的http header
  • 如果有,则判断Authorization里面的内容是否在用户列表里面,Authorization header的典型数据为"Authorization: Basic jdhaHY0=",其中Basic表示基础认证, jdhaHY0=是base64编码的"user:passwd"字符串。
  • 如果没有,或者用户密码不对,则返回http code 401页面给客户端
  • 标准的http浏览器在收到401页面之后,应该弹出一个对话框让用户输入帐号密码;并在用户点确认的时候再次发出请求,这次请求里面将带上Authorization header


一次典型的访问场景是:

  • 浏览器发送http请求(没有Authorization header)
  • 服务器端返回401页面
  • 浏览器弹出认证对话框
  • 用户输入帐号密码,并点确认
  • 浏览器再次发出http请求(带着Authorization header)
  • 服务器端认证通过,并返回页面
  • 浏览器显示页面


使用http auth的场景不会用cookie,也就是说每次都会送帐号密码信息过去。然后我们都知道base64编码基本上等于明文。这削弱了安全。

由于种种缺点,http auth现在用的并不多。不过在路由器等场合还是有应用的,原因是http auth最简单,使用起来几乎是零成本。

在你需要做访问控制,又不想拖上SSO、数据库之类的东西的时候,http auth不失为一个简洁的选项。


Web后端语言模拟http请求(带用户名和密码)实例代码大全

RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。而随着RESTful API的成熟和流行,应用开发方面就需要以模拟http请求的方式来调用RESTful API接口;经过一段...
  • testcs_dn
  • testcs_dn
  • 2016年03月20日 14:40
  • 11085

thinkphp3.23的auth详细源码解读(带实例)

thinkphp的auth权限认证对于做网站来讲是非常常用的一个功能,所以特别写一篇文章来帮助自己更好的记忆,毕竟好记性不如烂笔头! 先来看看auth所需要的三个表: think_auth_group...
  • belen_xue
  • belen_xue
  • 2017年02月26日 22:36
  • 1573

几个重要平台的auth2登录验证

QQ 后台方式的登录验证 http://wiki.opensns.qq.com/wiki/%E3%80%90QQ%E7%99%BB%E5%BD%95%E3%80%91%E4%BD%BF%E7%9...
  • aegoose
  • aegoose
  • 2013年02月27日 09:46
  • 15615

Redis (error) NOAUTH Authentication required.解决方法

出现认证问题,应该是设置了认证密码,输入密码既可以啦 主要字符串形式! 127.0.0.1:6379> auth "yourpassword"-----------------------------...
  • basycia
  • basycia
  • 2016年08月10日 20:39
  • 67999

HTTP基本认证(Basic Authentication)的JAVA示例

HTTP基本认证工作原理以及用JAVA如何实现
  • kkdelta
  • kkdelta
  • 2014年06月04日 14:22
  • 42784

用HttpPost登陆验证时,用户名和密码放在请求头部header中的处理方法,形式为Authorization: username password。

 post.setHeader("Authorization", "your token"); 这里主要是要
  • u013136708
  • u013136708
  • 2014年11月17日 15:57
  • 18309

爬虫之登陆验证

运行爬虫抓取某些网站的时候,经常会碰到需要登陆验证(输入账号、密码)之后才能获取数据的情况。那么问题来了,如何完成登陆验证呢?下面以itunes为例大概总结两种方法。主要使用工具为python/jav...
  • u011747443
  • u011747443
  • 2016年11月25日 10:49
  • 11460

HTTP认证方式

原文转自http://www.cnblogs.com/xiekeli/p/5607107.html 几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单...
  • m0_37402080
  • m0_37402080
  • 2017年03月29日 20:14
  • 707

Http之Auth的那些事

谨以此文献给那些需要实现HTTP AUTH的“程序猿”们。 关于HTTP AUTH的文档不多。 RFC在 http://www.ietf.org/rfc/rfc2617.txt ...
  • u010794180
  • u010794180
  • 2015年10月08日 10:34
  • 1111

《那些年啊,那些事——一个程序员的奋斗史》——01

    段伏枥,一个瘦小,矮小,根本和“帅”这个字粘不上任何关系的普通人。名字的来源在于其多读了几年书的老爹,总抱着有一天要出书出名乃至于名流千古的美好理想,但可惜现实总是给予他无情的而又现实的打击,...
  • norains
  • norains
  • 2011年06月09日 12:09
  • 71948
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP AUTH 那些事
举报原因:
原因补充:

(最多只允许输入30个字)