码迷,mamicode.com
首页 > Web开发 > 详细

HTTP协议详解之基本认证篇

时间:2015-11-02 18:50:31      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

•什么是HTTP基本认证:

  桌面应用程序也通过HTTP协议跟web服务器交互,桌面应用程序一般不会使用cookie,而是把‘用户名+:+密码’用base64编码之后的string放在request中的header Authorization中发送给服务端。

  当打开网页提示需要输入账号和密码时,假设密码/账号错误,服务器会返回401错误。

 

•HTTP基本认证的过程:

  1)客户端发送request给服务端,

  2)因为request中没有包含Authorization header,服务器会返回一个401错误给客户端。

  3)客户端把用户名和密码用base64编码之后,放在Authorization header中发送给服务器,认证成功。

  4)服务端将Authorization header中的用户名和密码取出来,进行验证,如果验证通过将根据需求发送资源给客户端。

 

•HTTP OAuth认证

  OAuth对于HTTP来讲,就是放在OAuthorization header中的不是用户名和密码,而是一个token。

  

•python案例:

#python 27
#xiaodeng
#HTTP权威指南 133


#通过添加HTTP header来实现
import urllib,urllib2
from base64 import encodestring
url=‘‘
user=‘‘
passwd=‘‘
req=urllib2.Request(url)
basestr=encodestring(%s:%s%(user,passwd))[:1]
req.add_header(Authorization,Basic %s% basestr)
f=urllib2.urlopen(req)



#通过headler来实现
import urllib2
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()#创建密码管理器
url = "http://www.163.com/"
password_mgr.add_password(None, url, username, password)# 添加用户名和密码.如果知道realm,用它代替None.
handler = urllib2.HTTPBasicAuthHandler(password_mgr)

opener = urllib2.build_opener(handler)#创建opener
a_url = http://www.baidu.com/  
opener.open(a_url)#打开一个url
urllib2.install_opener(opener) #安装opener,以后urllib2.urlopen都会用它。

 

HTTP协议详解之基本认证篇

标签:

原文地址:http://www.cnblogs.com/dengyg200891/p/4930664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!