HTTP協議詳解之基本認證篇

2022-03-12 21:46:29 字數 2002 閱讀 5017

•什麼是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來實現

建立密碼管理器

url = "

"password_mgr.add_password(none, url, username, password)

#新增使用者名稱和密碼.如果知道realm,用它代替none.

建立opener

a_url = '

'opener.open(a_url)

#開啟乙個url

urllib2.install_opener(opener) #

安裝opener,以後urllib2.urlopen都會用它。

import

urllib2

import

base64

theurl = '

'req=urllib2.request(theurl)

username = ''

password = ''

base64string = base64.encodestring('

%s:%s

' % (username, password))[:-1] #

注意哦,這裡最後會自動新增乙個\n

authheader = "

basic %s

" %base64string

req.add_header(

"authorization

", authheader)

handle =urllib2.urlopen(req)

thepage =handle.read()

print thepage

HTTP協議之基本認證

閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...

HTTP協議之基本認證

桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名稱 冒號 密碼 用base64演算法加密後的字串放在http request 中的header authorization中傳送給服務端,這種方式叫http基本認證 basic authentic...

HTTP協議基本認證

閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...