http.clientモジュールを使用してPythonでHTTPリクエストの応答(ステータス)コードを取得する

http.clientモジュールを使用してPythonでHTTPリクエストの応答(ステータス)コードを取得してみます。

HTTPリクエストの応答コードというのは、サーバーが要求されたページを正常に提供できたかどうかをコードで示すものです。正常に提供した場合は200と返します。サーバーエラーの場合は、500と返します。クライアントエラーの場合は400と返します。ページが見つかりませんというエラーは404エラーと返します。応答(ステータス)コードに関しては、「HTTP レスポンスステータスコード – HTTP | MDN」が参考になります。

http.clientモジュールは、Pythonの標準ライブラリなので、事前にインストールする必要はありません。

■Python

Pythonバージョン

今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)

■http.clientモジュールを使用してHTTPリクエストの応答コードを取得する

では、早速http.clientモジュールを使用してHTTPリクエストの応答コードを取得するスクリプトを書いてみます。

■コード

import http.client

h = http.client.HTTPConnection("laboratory.kazuuu.net")

#GETリクエストを実行。Webページから情報取得
h.request("GET","/")

#ホームページにあるすべてのデータを取得
data= h.getresponse()

#サーバーによって返される応答を出力
print(data.code)

インポートでhttp.clientモジュールを呼び出して、hという変数を作成し、http.client.HTTPConnection()の()に、HTTPリクエストの応答コードを取得したいURLを記述します。今回は当サイト(laboratory.kazuuu.net)のHTTPリクエストの応答コードを取得してみます。

hという変数で、GETリクエストを実行します。HTTP通信で、サーバ(Webページ)から情報を取得してきます。

取得してきた情報をdataという変数に入れて、data.codeで、こちらが行った情報を取得するという要求に対してサーバーによって返される応答をprint関数で出力します。

■実行

今回書いたスクリプトを「httprequest_responsecode.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、「301」と表示され、HTTPリクエストの応答コードを取得することができました。

ちなみに「301」という応答コードは、301 Moved Permanentlyという意味です。URL が永遠に変更されています。なぜ変更されているかというと、当サイト(laboratory.kazuuu.net)は、独自SSL設定を行い、HTTP リクエストを HTTPS にリダイレクトさせているためです。これにより、「301」と表示されています。

コメント

タイトルとURLをコピーしました