インターネット通信の基本を理解しよう

学習の目標

本章では、以下の内容を学習します。

  • インターネット通信の基本的な仕組みを理解する
  • クライアントとサーバーの関係を学ぶ
  • HTTPプロトコルとは何かを理解する
  • URLの構造と役割を学ぶ
  • requestsライブラリのインストール方法を習得する

インターネット通信の仕組み

普段、私たちがスマートフォンやパソコンでWebサイトを見たり、アプリを使ったりしているとき、実はインターネット通信という仕組みが働いています。

たとえば、YouTubeで動画を見るとき、以下のような流れで通信が行われています。

  1. あなたのスマートフォンが「この動画を見せて」とYouTubeに要求を送る
  2. YouTubeのコンピューター(サーバー)が動画データを準備する
  3. YouTubeが動画データをあなたのスマートフォンに送り返す
  4. あなたのスマートフォンが受け取った動画を画面に表示する

この一連の流れが、インターネット通信の基本的な仕組みです。まるで手紙のやり取りのように、「要求を送って、返事をもらう」という形で情報をやり取りしています。

クライアントとサーバーの関係

インターネット通信では、クライアントサーバーという2つの役割があります。

クライアントは、情報を要求する側のことです。あなたが使っているスマートフォンのブラウザやアプリが、クライアントにあたります。レストランで例えると、料理を注文するお客さんのような存在です。

サーバーは、情報を提供する側のことです。GoogleやYouTube、TwitterなどのWebサービスを動かしているコンピューターがサーバーです。レストランで例えると、注文を受けて料理を作って提供するお店のような存在です。

この関係をもう少し具体的に見てみましょう。

役割説明具体例
クライアント情報を要求するブラウザ、スマートフォンアプリ
サーバー情報を提供するGoogle、YouTube、Amazon

普段私たちが「サイトを見る」という行動は、実際には以下のような通信が行われています。

  1. クライアント(あなたのブラウザ):「GoogleのWebページを見せて」
  2. サーバー(Googleのコンピューター):「はい、こちらがWebページです」
  3. クライアント:受け取ったWebページを画面に表示

HTTPプロトコルとは

インターネット通信では、HTTPプロトコルという約束事を使って情報をやり取りしています。

プロトコルとは、コンピューター同士が通信するときの「ルール」や「約束事」のことです。人間同士が会話するときに言語(日本語、英語など)が必要なように、コンピューター同士が通信するときにもルールが必要なのです。

HTTP(HyperText Transfer Protocol)は、Web上で情報をやり取りするためのプロトコルです。ブラウザがWebサイトを表示するときには、必ずHTTPという約束事に従って通信が行われています。

HTTPでは、主に以下のような種類の通信があります。

GETは、「情報を取得したい」という要求です。Webページを見る、画像を表示する、動画を再生するなど、ほとんどの場合でGETが使われます。

POSTは、「情報を送信したい」という要求です。フォームに入力した内容を送信する、ファイルをアップロードする、コメントを投稿するなどの場合にPOSTが使われます。

今回の学習では、主にGETを使って情報を取得する方法を学んでいきます。

URLの構造と役割

Webサイトにアクセスするときに使うURLについても理解しておきましょう。

URLは、インターネット上の住所のようなものです。郵便を送るときに住所が必要なように、インターネット通信でも「どこにアクセスしたいのか」を示すURLが必要です。

たとえば、https://www.google.com/search?q=pythonというURLを見てみましょう。

部分名前説明
https://プロトコル通信方法(HTTPSは暗号化されたHTTP)
www.google.comドメイン名サーバーの住所
/searchパスサーバー内の具体的な場所
?q=pythonクエリパラメータ追加の情報(検索キーワードなど)

URLを使うことで、「Googleのサーバーのsearchというページにアクセスして、pythonというキーワードで検索したい」という要求を正確に伝えることができます。

requestsライブラリのインストール

Pythonでインターネット通信を行うために、requestsというライブラリを使います。このライブラリは、HTTPプロトコルを使った通信を簡単に行えるようにしてくれる便利なツールです。

まず、VS Codeでターミナルを開いてください。Windowsの場合は「表示」メニューから「ターミナル」を選択します。Macの場合も同様です。

ターミナルが開いたら、以下のコマンドを入力してrequestsライブラリをインストールします。

pip install requests

このコマンドを実行すると、requestsライブラリがダウンロードされてインストールされます。初回は少し時間がかかる場合がありますが、しばらく待ちましょう。

インストールが完了すると、以下のようなメッセージが表示されます。

Successfully installed requests-2.31.0

バージョン番号は異なる場合がありますが、「Successfully installed」と表示されれば正常にインストールされています。

requestsライブラリの基本的な使い方

インストールが完了したら、実際にrequestsライブラリを使ってみましょう。VS Codeで新しいファイル test_requests.py を作成し、以下のコードを入力してください。

# requestsライブラリをインポート
import requests

# ライブラリが正常にインストールされているか確認
print("requestsライブラリが正常にインポートされました")
print(f"requestsのバージョン: {requests.__version__}")

このプログラムを実行してみましょう。

python test_requests.py

実行結果は以下のようになります。

requestsライブラリが正常にインポートされました
requestsのバージョン: 2.31.0

エラーが表示されずにこのような結果が出れば、requestsライブラリが正常にインストールされて使える状態になっています。

もしエラーが表示される場合は、以下のことを確認してみてください。

  • インストールコマンドが正しく実行されたか
  • ターミナルでエラーメッセージが表示されていないか
  • Pythonが正しくインストールされているか

インターネット通信のイメージを掴もう

最後に、これから学習するインターネット通信のイメージを掴んでおきましょう。

私たちがPythonプログラムから行うインターネット通信は、以下のような流れになります。

  1. 要求の準備:「どのWebサイトの、どの情報が欲しいか」を決める
  2. 要求の送信:requestsライブラリを使って、サーバーに要求を送る
  3. 応答の受信:サーバーからの返事(データ)を受け取る
  4. データの処理:受け取ったデータを加工して、プログラムで使える形にする

たとえば、天気予報のデータを取得するプログラムでは、以下のような流れになります。

  1. 天気予報サービスのURLを準備する
  2. requestsを使って「今日の天気を教えて」という要求を送る
  3. 天気予報サービスから天気データを受け取る
  4. 受け取ったデータから「晴れ」「雨」などの情報を取り出す

このように、Pythonプログラムからインターネット上の様々なサービスにアクセスして、データを取得できるようになります。

まとめ

本章では、インターネット通信の基本的な仕組みについて学習しました。

インターネット通信は、クライアントとサーバーが要求と応答をやり取りする仕組みです。そして、HTTPプロトコルという約束事に従って通信が行われています。

また、URLを使ってアクセス先を指定し、requestsライブラリを使ってPythonからインターネット通信を行う準備が整いました。

重要なポイントは以下の通りです。

  • クライアントが要求を送り、サーバーが応答を返す
  • HTTPプロトコルが通信のルールを定めている
  • URLはインターネット上の住所のような役割を果たす
  • requestsライブラリでPythonからHTTP通信ができる

次回は、実際にrequestsライブラリを使って、初めてのWebリクエストを送信してみましょう。インターネット上の情報を取得する体験を通して、理解を深めていきます。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Starterプランでより詳しく学習

この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
インターネット通信の基礎