http包簡介html
http包提供了 HTTP協議的一些功能,主要模塊有:瀏覽器
http.client --- 底層的 HTTP 協議的一些功能,能夠爲 urllib.request 模塊所用服務器
http.server --- 提供了基於 socketserver模塊的基本 HTTP服務器類cookie
http.cookies --- cookies 的管理工具socket
http.client :工具
HttpClient不是一個瀏覽器。它是一個客戶端的HTTP通訊實現庫。HttpClient的目標是發送和接收HTTP報文。url
兩個主要類(用於客戶端):spa
HTTPConnection :基於HTTP協議的客戶端,指定 URL(網址) 後,能夠 發送請求報文 和 接收響應報文 code
HTTPRespone :基於 HTTP 協議的服務端迴應。一旦用 HTTPConnection 成功鏈接,能夠調用相關方法返回該實例(HTTPRequest實例)。server
(1)HTTPConnection 的方法:
構造方法: HTTPConnection( host,port,[timeout] ) 返回一個HTTPConnection 實例
host:表示主機域名或 ip 地址
port:表示端口
timeout:阻塞操做將會在給定時間後超時。可選項
發送請求報文方法:HTTPConnection.request( method,url,body =None,headers = {} )
method:發送的操做,通常爲 GET 或者 POST
url :進行操做的 url
body :所發送的數據
headers:發送的 HTTP頭部,是一個字典類型
獲取響應報文方法:HTTPConnection.getrespone( )
關閉與服務器的鏈接: HTTPConne.close()
發送一個頭部:HTTPConnection.putheader( header,args[ ] ) #頭部以一個字典方式發送
發送一個空白行到服務器,標誌頭部Header的結束:HTTPConnection.endheaders( )
發送數據到服務器:HTTPConnection.send( data ) ,應該在endheaders()以後 和 getrespone()以前調用。
(2)HTTPRespone:
HTTPRespone對象:一旦用 HTTPConnection 成功鏈接,能夠調用HTTPConnection.getrespone()返回該實例(HTTPRequest實例)。
HTTPRespone.getheader(name) :返回頭部中的 name 字段對應的值
HTTPRespone.getheaders( ) :以元組的方式返回整個頭部的信息
HTTPRespone.read() :返回響應報文中的body部分,也即正文部分
HTTPRespone.status #返回狀態碼
HTTPRespone.version #返回 HTTP協議版本
http 包應用實例 。
from http.client import HTTPConnection con = HTTPConnection('www.baidu.com',80) con.request('GET','/') #發送請求報文 res = con.getresponse() #獲取響應報文對象 print(res.status) #200 (表示狀態碼) print(res.reason) #OK (表示狀態碼對應的意義) print(res.read().decode('utf-8')) #打印www.baidu.com的html