
- Python - 網路程式設計
- Python - 網路入門
- Python - 網路環境
- Python - 網際網路協議
- Python - IP地址
- Python - DNS查詢
- Python - 路由
- Python - HTTP請求
- Python - HTTP響應
- Python - HTTP報頭
- Python - 自定義HTTP請求
- Python - 請求狀態碼
- Python - HTTP身份驗證
- Python - HTTP資料下載
- Python - 連線重用
- Python - 網路介面
- Python - Socket程式設計
- Python - HTTP客戶端
- Python - HTTP伺服器
- Python - 構建URL
- Python - Web表單提交
- Python - 資料庫和SQL
- Python - Telnet
- Python - 郵件資訊
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web伺服器
- Python - 上傳資料
- Python - 代理伺服器
- Python - 目錄列表
- Python - 遠端過程呼叫
- Python - RPC JSON伺服器
- Python - Google地圖
- Python - RSS Feed
Python - HTTP請求
HTTP或超文字傳輸協議基於客戶端-伺服器模型。通常,Web瀏覽器是客戶端,託管網站的計算機是伺服器。在Python中,我們使用requests模組建立HTTP請求。這是一個非常強大的模組,可以處理HTTP通訊的許多方面,不僅僅是簡單的請求和響應資料。它可以處理身份驗證、壓縮/解壓縮、分塊請求等。
HTTP客戶端以請求訊息的形式向伺服器傳送HTTP請求,該請求訊息包括以下格式:
- 請求行
- 零個或多個報頭(通用|請求|實體)欄位,後跟CRLF
- 空行(即,CRLF之前沒有任何內容的行),表示報頭欄位的結束
- 可選的訊息體
以下部分解釋了HTTP請求訊息中使用的每個實體。
請求行
請求行以方法標記開頭,後跟請求URI和協議版本,最後以CRLF結尾。元素之間用空格SP字元分隔。
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
讓我們討論請求行中提到的每個部分。
請求方法
請求**方法**指示要對給定**請求URI**標識的資源執行的方法。該方法區分大小寫,應始終以大寫形式提及。下表列出了HTTP/1.1中所有支援的方法。
序號 | 方法和描述 |
---|---|
1 | GET GET方法用於使用給定的URI從給定的伺服器檢索資訊。使用GET的請求應該只檢索資料,並且不應對資料產生任何其他影響。 |
2 | HEAD 與GET相同,但它只傳輸狀態行和報頭部分。 |
3 | POST POST請求用於將資料傳送到伺服器,例如,使用HTML表單的客戶資訊、檔案上傳等。 |
4 | PUT 將目標資源的所有當前表示替換為上傳的內容。 |
5 | DELETE 刪除URI給出的目標資源的所有當前表示。 |
6 | CONNECT 建立到由給定URI標識的伺服器的隧道。 |
7 | OPTIONS 描述目標資源的通訊選項。 |
8 | TRACE 執行訊息環回測試以及到目標資源的路徑。 |
請求URI
請求URI是統一資源識別符號,它標識要對其應用請求的資源。以下是指定URI最常用的形式:
Request-URI = "*" | absoluteURI | abs_path | authority
序號 | 方法和描述 |
---|---|
1 | 星號**\* **用於HTTP請求不適用於特定資源,而是適用於伺服器本身的情況,並且僅當使用的方法不一定會應用於資源時才允許。例如: OPTIONS \* HTTP/1.1 |
2 | 當向代理伺服器發出HTTP請求時,使用**absoluteURI**。請求代理伺服器轉發請求或從有效快取中提供服務,並返回響應。例如: GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1 |
3 | 請求URI最常見的形式是用於標識原始伺服器或閘道器上的資源。例如,希望直接從原始伺服器檢索資源的客戶端將建立一個到主機“www.w3.org”的80埠的TCP連線,併發送以下行: GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org 請注意,絕對路徑不能為空;如果原始URI中不存在絕對路徑,則必須將其指定為“/”(伺服器根目錄)。 |
使用Python requests
我們將使用requests模組來學習HTTP請求。
pip install requests
在下面的示例中,我們看到一個簡單的GET請求案例,並打印出響應的結果。我們選擇只打印前300個字元。
# How to make http request import requests as req r = req.get('https://tutorialspoint.tw/python/') print(r.text)[0:300]
執行上述程式後,我們將得到以下輸出:
<!DOCTYPE html> <!--[if IE 8]><html class="ie ie8"> <![endif]--> <!--[if IE 9]><html class="ie ie9"> <![endif]--> <!--[if gt IE 9]><!--> <html> <!--<![endif]--> <head> <!-- Basic --> <meta charset="utf-8"> <title>Python Tutorial</title> <meta name="description" content="Python Tutorial