Python-network-programming-python-http-requests
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:
絶対パスを空にすることはできません。元の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