69pao国产精品视频-久久精品一区二区二三区-精品国产精品亚洲一本大道-99国产综合一区久久

Python HTTP請(qǐng)求

Python HTTP請(qǐng)求

http或超文本傳輸協(xié)議適用于客戶(hù)端服務(wù)器模型。通常,Web瀏覽器是客戶(hù)端,托管網(wǎng)站的計(jì)算機(jī)是服務(wù)器。在python中,我們使用requests模塊創(chuàng)建http請(qǐng)求。它是一個(gè)非常強(qiáng)大的模塊,除了簡(jiǎn)單的請(qǐng)求和響應(yīng)數(shù)據(jù)外,還可以處理http通信的許多方面。它可以處理身份驗(yàn)證,壓縮/解壓縮,分塊請(qǐng)求等。

HTTP客戶(hù)端以請(qǐng)求消息的形式向服務(wù)器發(fā)送HTTP請(qǐng)求,該消息包括以下格式:

  • 請(qǐng)求行;
  • 零個(gè)或多個(gè)標(biāo)頭(General | Request | Entity)字段,后跟CRLF;
  • 空行(即在CRLF之前沒(méi)有任何內(nèi)容的行)指示標(biāo)頭字段的結(jié)尾;
  • 消息正文(可選);

以下各節(jié)說(shuō)明了HTTP請(qǐng)求消息中使用的每個(gè)實(shí)體。

1. 請(qǐng)求行

請(qǐng)求行以方法令牌開(kāi)頭,然后是請(qǐng)求URI和協(xié)議版本,最后以CRLF結(jié)尾。元素由空格SP字符分隔。

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : m.aalaour.cn
# Date : 2020-08-25
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
  
 

讓我們討論請(qǐng)求行中提到的每個(gè)部分。

請(qǐng)求方法請(qǐng)求方法表示要對(duì)由給定Request-URI標(biāo)識(shí)的資源執(zhí)行的方法。該方法區(qū)分大小寫(xiě),應(yīng)始終以大寫(xiě)形式提及。下表列出了HTTP/1.1中所有受支持的方法。

讓我們討論請(qǐng)求行中提到的每個(gè)部分。

2. 請(qǐng)求方法

請(qǐng)求方法表示要對(duì)由給定Request-URI標(biāo)識(shí)的資源執(zhí)行的方法。該方法區(qū)分大小寫(xiě),應(yīng)始終以大寫(xiě)形式。下表列出了HTTP/1.1中所有受支持的方法。

編號(hào) 方法 描述
1 GET GET方法用于使用給定URI從給定服務(wù)器檢索信息。使用GET的請(qǐng)求應(yīng)僅檢索數(shù)據(jù),而對(duì)數(shù)據(jù)沒(méi)有其他影響。
2 HEAD 與GET相同,但只傳輸狀態(tài)行和標(biāo)頭部分。
3 POST POST請(qǐng)求用于使用HTML表單將數(shù)據(jù)發(fā)送到服務(wù)器,例如,客戶(hù)信息,文件上傳等。
4 PUT 使用上載的內(nèi)容替換目標(biāo)資源的所有當(dāng)前表示形式。
5 DELETE 刪除URI給定的目標(biāo)資源的所有當(dāng)前表示形式。
6 CONNECT 建立到由給定URI標(biāo)識(shí)的服務(wù)器的隧道。
7 OPTIONS 描述目標(biāo)資源的通信選項(xiàng)。
8 TRACE 與目標(biāo)資源的路徑一起執(zhí)行消息回送測(cè)試。

3. Request-URI

Request-URI是統(tǒng)一資源標(biāo)識(shí)符,用于標(biāo)識(shí)在其上應(yīng)用請(qǐng)求的資源。以下是指定URI的最常用形式:

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : m.aalaour.cn
# Date : 2020-08-25
Request-URI = "*" | absoluteURI | abs_path | authority
  
 

當(dāng)HTTP請(qǐng)求不適用于特定資源而是服務(wù)器本身時(shí),將使用星號(hào)*;僅當(dāng)所使用的方法不一定適用于資源時(shí),才使用星號(hào)*。例如:

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : m.aalaour.cn
# Date : 2020-08-25
OPTIONS * HTTP/1.1
  
  

向代理發(fā)出HTTP請(qǐng)求時(shí),將使用absoluteURI。請(qǐng)求代理轉(zhuǎn)發(fā)來(lái)自有效緩存的請(qǐng)求或服務(wù),并返回響應(yīng)。例如:

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : m.aalaour.cn
# Date : 2020-08-25
GET http://m.aalaour.cn/python/python-index.html HTTP/1.1
  
  

Request-URI的最常見(jiàn)形式是用于標(biāo)識(shí)源服務(wù)器或網(wǎng)關(guān)上的資源的形式。例如,希望直接從原始服務(wù)器檢索資源的客戶(hù)端將創(chuàng)建到主機(jī)“ www.w3.org” 的端口80的TCP連接,并發(fā)送以下行:

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : m.aalaour.cn
# Date : 2020-08-25
GET /python/python-index.html HTTP/1.1
 Host: m.aalaour.cn
  
 

4. 使用Python請(qǐng)求

我們將使用requests模塊來(lái)了解http請(qǐng)求。安裝:

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : m.aalaour.cn
# Date : 2020-08-25
pip install requests
  
 

在下面的示例中,我們看到一個(gè)簡(jiǎn)單的GET請(qǐng)求的情況,并打印出響應(yīng)的結(jié)果。選擇打印前300個(gè)字符。

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : m.aalaour.cn
# Date : 2020-08-25
# How to make http request
 import requests as req
 r = req.get('http://m.aalaour.cn/python/python-index.html')
 print(r.text)[0:300]
  
 

下一節(jié):Python HTTP響應(yīng)

Python 網(wǎng)絡(luò)編程

相關(guān)文章