Tag Archives: http auth

一种传递HTTP认证信息的方式

原理: 在HTTP认证(Basic,Digest)中,当浏览器访问受保护的资源时,WEB服务器会返回响应: HTTP/1.1 401 Authorization Required 并在响应头WWW-Authenticate中指明需要的认证方式。之后浏览器向使用计算机的用户 询问用户名和密码,然后将这些信息加密后通过Authorization和其它请求头发送给服务器 如果用户名密码有效,服务器就返回客户请求的资源。客户的所有后续请求也要提供相同的 用户信息(因为HTTP是无状态的) 如果用户名密码无效,服务器会再次返回401代码,然后浏览器再次询问用户。 IE浏览器在用户输入几次错误密码之后放弃,显示服务器返回的401错误页面, Firefox允许用户一直重试,直到密码正确,或者用户点击取消,对话框才会消失,然后 显示401错误页面。 我们不难看出,要想在各个应用或者站点之间传递HTTP认证信息,关键是修改浏览器的 请求,添加Authorization及相关请求头。我们也知道,对浏览器进行操作这样的任务, 只能由客户端代码来完成(Javascript,Flash,Java Applet…)。 在Javascript可用的对象中,XMLHttpRequest直接支持HTTP认证,它会将其open方法中 提供的用户名密码处理后放到Authorization请求头,发给服务器。之后浏览器会记住 这一认证信息并在访问相关资源时自动使用。

Posted in WEB Application | Tagged | Leave a comment