Python HTTP響應(yīng)
Python HTTP響應(yīng)
http或超文本傳輸協(xié)議適用于客戶端服務(wù)器模型。通常,Web瀏覽器是客戶端,托管網(wǎng)站的計(jì)算機(jī)是服務(wù)器。在收到客戶端的請求后,服務(wù)器會生成響應(yīng)并將其以某種格式發(fā)送回客戶端。
在接收并解釋了請求消息后,服務(wù)器將以HTTP響應(yīng)消息進(jìn)行響應(yīng):
- 狀態(tài)行
- 零個或多個標(biāo)頭(General | Response | Entity)字段,后跟CRLF
- 空行(即CRLF之前沒有任何內(nèi)容的行)指示標(biāo)題字段的末尾
- 可選的消息正文
以下各節(jié)說明了HTTP響應(yīng)消息中使用的每個實(shí)體。
1. 消息狀態(tài)行
狀態(tài)行由協(xié)議版本,后面的數(shù)字狀態(tài)代碼及其關(guān)聯(lián)的文本短語組成。元素由空格SP字符分隔。
# Filename : example.py # Copyright : 2020 By Codebaoku # Author by : # Date : 2020-08-25 Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
2. HTTP版本
支持HTTP版本1.1的服務(wù)器將返回以下版本信息:
# Filename : example.py # Copyright : 2020 By Codebaoku # Author by : # Date : 2020-08-25 HTTP-Version = HTTP/1.1
3. 狀態(tài)碼
Status-Code元素是一個三位數(shù)的整數(shù),其中Status-Code的第一位定義響應(yīng)的類別,最后兩位不具有任何分類作用。第一位數(shù)字有5個值:
編號 | 狀態(tài)碼 | 描述 |
1 | 1xx | 信息性:表示已收到請求,并且該過程正在繼續(xù)。 |
2 | 2xx | 成功:表示已成功接收,理解并接受了該動作。 |
3 | 3xx | 重定向:表示必須采取進(jìn)一步的措施才能完成請求。 |
4 | 4xx | 客戶端錯誤:請求包含不正確的語法或無法實(shí)現(xiàn)。 |
5 | 5xx | 服務(wù)器端錯誤:服務(wù)器無法滿足有效的請求。 |
HTTP狀態(tài)代碼是可擴(kuò)展的,不需要HTTP應(yīng)用程序來了解所有已注冊狀態(tài)代碼的含義。
4. 使用Python請求
在下面的python程序中,使用urllib3模塊發(fā)出http GET請求并接收包含數(shù)據(jù)的響應(yīng)。它還提供了響應(yīng)代碼,該響應(yīng)代碼也由模塊中的功能管理。PoolManager對象處理連接池的所有詳細(xì)信息,還處理線程安全性。
# Filename : example.py # Copyright : 2020 By Codebaoku # Author by : # Date : 2020-08-25 import urllib3 http = urllib3.PoolManager() resp = http.request('GET', 'http://yapf.com/robots.txt') print resp.data # get the status of the response print resp.status
當(dāng)我們運(yùn)行上面的程序時(shí),得到類似以下輸出 :
# Filename : example.py # Copyright : 2020 By Codebaoku # Author by : # Date : 2020-08-25 User-agent: * Disallow: /tmp Disallow: /logs Disallow: /rate/* Disallow: /cgi-bin/* Disallow: /video/video_course_view.php?* Disallow: /video/course_view.php?* Disallow: /videos/* Disallow: /*/*_question_bank/* Disallow: //*/*/*/*/src/* 200
相關(guān)文章
- python中f字符串以及其常見用法介紹
- Python數(shù)據(jù)可視化之Pyecharts如何使用
- Python網(wǎng)絡(luò)爬蟲之如何獲取網(wǎng)絡(luò)數(shù)據(jù)
- Python HTTP請求
- Python HTTP響應(yīng)
- Python HTTP標(biāo)頭
- Python 自定義HTTP請求
- Python 請求狀態(tài)代碼
- Python 構(gòu)建URL
- Python Web表單提交
- Python SMTP
- Python Web服務(wù)器
- Python 上傳數(shù)據(jù)
- Python列出目錄
- Python 線程
- Python 同步線程
- Python 線程通信
- Python 測試線程應(yīng)用程序
- Python 處理器通信
- Python 事件驅(qū)動編程