Python-network-programming-python-http-requests

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

Python-HTTPリクエスト

httpまたはHyper Text Transfer Protocolは、クライアントサーバーモデルで動作します。 通常、Webブラウザーはクライアントであり、Webサイトをホストするコンピューターはサーバーです。 Pythonでは、httpsリクエストを作成するためにリクエストモジュールを使用します。 これは、単純な要求および応答データ以外のhttp通信の多くの側面を処理できる非常に強力なモジュールです。 認証、圧縮/解凍、チャンクされたリクエストなどを処理できます。

HTTPクライアントは、次の形式を含む要求メッセージの形式でサーバーにHTTP要求を送信します。

  • リクエストライン
  • CRLFが後に続く0個以上のヘッダー(一般|リクエスト|エンティティ)フィールド
  • 空の行(CRLFの前に何もない行) ヘッダーフィールドの終わりを示す
  • オプションでメッセージ本文

次のセクションでは、HTTP要求メッセージで使用される各エンティティについて説明します。

リクエストライン

Request-Lineはメソッドトークンで始まり、その後にRequest-URIとプロトコルバージョンが続き、CRLFで終わります。 要素はスペースSP文字で区切られます。

Request-Line = Method SP Request-URI SP HTTP-Version CRLF

Request-Lineに記載されている各部分について説明しましょう。

リクエスト方法

リクエスト method は、指定された Request-URI で識別されるリソースで実行されるメソッドを示します。 メソッドは大文字と小文字を区別し、常に大文字で表記する必要があります。 次の表に、HTTP/1.1でサポートされているすべてのメソッドを示します。

S.N. Method and Description
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

Request-URIはUniform Resource Identifierであり、リクエストを適用するリソースを識別します。 URIを指定するために最も一般的に使用されるフォームは次のとおりです。

Request-URI = "*" | absoluteURI | abs_path | authority
S.N. Method and Description
1

The asterisk * is used when an HTTP request does not apply to a particular resource, but to the server itself, and is only allowed when the method used does not necessarily apply to a resource. For example:

オプション *HTTP/1.1

2

The absoluteURI is used when an HTTP request is being made to a proxy. The proxy is requested to forward the request or service from a valid cache, and return the response. For example:

3

The most common form of Request-URI is that used to identify a resource on an origin server or gateway. For example, a client wishing to retrieve a resource directly from the origin server would create a TCP connection to port 80 of the host "www.w3.org" and send the following lines:

  • GET/pub/WWW/TheProjectl HTTP/1.1*
  • ホスト:www.w3.org *

絶対パスを空にすることはできません。元のURIに何も存在しない場合、「/」(サーバールート)として指定する必要があります。

Pythonリクエストを使用する

モジュールリクエストを使用して、httpリクエストについて学習します。

pip install requests

以下の例では、単純なGETリクエストのケースを見て、レスポンスの結果を出力します。 最初の300文字のみを印刷することを選択します。

# How to make http request
import requests as req
r = req.get('http://www.finddevguides.com/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