1.まずは、Hello HTTP

更新日: 2026.02.18

概要

Pythonのhttp.serverは簡単にWebサーバーを立ち上げる事の出来る非常に便利な標準ライブラリです。 サーバのHPを自作した製品のコントロール画面として使っています。

サーバの立ち上げ

先ずはアクセスすると”Hello HTTP”と表示する簡単はサーバを立ち上げます。下記はそのプログラム。

hello.py python
from http.server import HTTPServer, SimpleHTTPRequestHandler class MyHandler(SimpleHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header('Content-type', "text/html") self.end_headers() self.wfile.write("

Hello HTTP!

\n".encode()) host = '' port = 8080 httpd = HTTPServer((host, port), MyHandler) print('serving at port', port) httpd.serve_forever()

このコードを以下のコマンド "$ sudo python3 hello.py" で実行。次にPCからこのサーバにブラウザを使ってアクセスします。 OSインストール時にホスト名”raspberrypi” とし、コードで使用ポートを8080としているので、 ブラウザのURL欄に”raspberrypi.local:8080″と入力。これで画面に”Hello HTTP!”と表示されます。 (注:ポート8080がすでに使用されている場合は変更下さい)

Web Screen of first step

コードの説明

http.serverの説明はここー>"http.server --- HTTP サーバー” に有ります。今回はHTTPServer, SimpleHTTPRequestHandlerを使用しています。

  • SimpleHTTPRequestHandler:Webサーバーとして最低限必要な機能を持つ。
    • GET/POSTリクエストの処理を行う:
      主な関数役割機能
      do_GET()GETリクエスト処理URLで文字等を受け取る
      do_POST()POSTリクエスト処理フォームから送られたデータを受け取る
      end_headers()ヘッダー送信の終了独自のHTTPヘッダーを追加
    • index.html の自動認識:index.html や index.htm があれば、それを優先的に表示
    • ディレクトリ・リスティング:index.html がない場合、フォルダにあるファイル一覧を表示
    • など
  • HTTPServer:サーバ本体。ネットワークからの接続を待ち受け、適切なハンドラに引き渡す
    • ポートの監視:指定されたポート番号(例: 8080)の監視
    • リクエスト時の接続を確立:リクエスト内容を読み取る準備
    • ハンドラへの受け渡し
    • など

これらを元に”hello.py"を説明すると

  • 3行目:class MyHandler(SimpleHTTPRequestHandler):
    • SimpleHTTPRequestHandlerクラスを基底にした新しいクラスの宣言
    • ここでクライアントからの要求を処理。
    • 5行目:def do_GET(self): クライアントから、”GET”要求が有った場合、この関数が実行される。
      • 7行目:クライアントに、”GET”要求を受けた事を返答。
      • 8行目:これから送るデータの形式を”HTML”とヘッダに登録
      • 9行目:ヘッダをクライアントに送信
      • 10行目:”<h1> Hello HTTP!</h1> \n”をクライアントに送信し送信完了。
  • 14行目:HTTPServer()関数の引数は、server_addressと RequestHandlerClassです。
    • server_address:host(文字列)と port(数字) からなるタプル型変数
      • host:サーバーがリッスンするアドレス
        • 12行目:hostに ”(空文字列)を指定するとすべての利用可能なインターフェースを意味します。
      • port:通信に使うポート番号
        • 13行目:今回は8080を指定
    • RequestHandlerClass:リクエストの処理。 MyHandlerを指定しています。
  • 15行目:これで、サーバが無限ループ。

”hello.py"の説明は以上です。ちなみにこのHTTPサーバは ”Ctrl+C” で停止します。

次回は

今回はHttp_serverの第一歩。次回は”index.html”等ファイルの送信について説明します。

SINCE 2026