Python-network-programming-python-http-response

提供:Dev Guides
移動先:案内検索

Python-HTTPレスポンス

httpまたはHyper Text Transfer Protocolは、クライアントサーバーモデルで動作します。 通常、Webブラウザーはクライアントであり、Webサイトをホストするコンピューターはサーバーです。 クライアントから要求を受信すると、サーバーは応答を生成し、特定の形式でクライアントに送り返します。

要求メッセージを受信して​​解釈した後、サーバーはHTTP応答メッセージで応答します。

  • ステータスライン
  • CRLFが後に続く0個以上のヘッダー(一般|応答|エンティティ)フィールド
  • 空の行(CRLFの前に何もない行) ヘッダーフィールドの終わりを示す *オプションでメッセージ本文
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

HTTPバージョン

HTTPバージョン1.1をサポートするサーバーは、次のバージョン情報を返します。

HTTP-Version = HTTP/1.1

状態コード

Status-Codeエレメントは3桁の整数です。Status-Codeの最初の桁は応答のクラスを定義し、最後の2桁には分類の役割はありません。 最初の桁には5つの値があります。

S.N. Code and Description
1
  • 1xx: Informational*

要求が受信され、プロセスが継続していることを意味します。

2

2xx: Success

アクションが正常に受信、理解、および受け入れられたことを意味します。

3

3xx: Redirection

これは、要求を完了するためにさらにアクションを実行する必要があることを意味します。

4

4xx: Client Error

これは、リクエストに誤った構文が含まれているか、リクエストを実行できないことを意味します。

5

5xx: Server Error

サーバーが明らかに有効な要求を実行できなかったことを意味します。

HTTPステータスコードは拡張可能であり、HTTPアプリケーションはすべての登録済みステータスコードの意味を理解する必要はありません。

Pythonリクエストの使用

以下のpythonプログラムでは、urllib3モジュールを使用してhttp GETリクエストを作成し、データを含むレスポンスを受信します。 また、モジュール内の関数によって管理される応答コードも提供します。 PoolManagerオブジェクトは、接続プーリングのすべての詳細を処理し、スレッドセーフも処理します。

import urllib3
http = urllib3.PoolManager()

resp = http.request('GET', 'http://finddevguides.com/robots.txt')
print resp.data

# get the status of the response
print resp.status

上記のプログラムを実行すると、次の出力が得られます-

User-agent: *
Disallow:/tmp
Disallow:/logs
Disallow:/rate/*
Disallow:/cgi-bin/*
Disallow:/videotutorials/video_course_view.php?*
Disallow:/videotutorials/course_view.php?*
Disallow:/videos/*
Disallow:/*/*_question_bank/*
Disallow://*/*/*/*/src/*

200