Node.jsの「http」モジュールは、HTTPサーバやクライアントを作成するためのコアモジュールであり、外部ライブラリを使わずにWebサーバ機能を実装することができます。以下では、「http」モジュールの概要、基本的な使い方、主なメソッドやイベントについて詳しく説明します。
1. 「http」モジュールとは
Node.jsに組み込まれているコアモジュールの一つで、HTTP通信を行うためのインターフェースを提供します。http.createServer()を使ってHTTPサーバを構築したり、クライアントとしてHTTPリクエストを送信することも可能です。
2. HTTPサーバの基本的な作成方法
以下は、最もシンプルなHTTPサーバの例です:
説明
-
http.createServer(callback):リクエストを受け取るたびに実行されるコールバック関数を定義し、サーバインスタンスを作成。 -
req:クライアントからのリクエスト情報(URL, メソッド, ヘッダなど)。 -
res:レスポンスを制御するオブジェクト。 -
res.writeHead(statusCode, headers):ステータスコードとレスポンスヘッダを設定。 -
res.end(data):レスポンスの終了とデータ送信。
3. 主なメソッドとプロパティ
サーバオブジェクト(http.Server)
http.Server)-
server.listen(port, callback):指定したポートで待機。 -
server.close():サーバの停止。 -
server.on('request', listener):HTTPリクエストを処理するイベント。
リクエストオブジェクト(http.IncomingMessage)
http.IncomingMessage)-
req.method:HTTPメソッド(GET, POSTなど)。 -
req.url:リクエストされたURL。 -
req.headers:ヘッダ情報。
レスポンスオブジェクト(http.ServerResponse)
http.ServerResponse)-
res.writeHead(statusCode, headers):ステータスコードとヘッダを送信。 -
res.write(data):レスポンスボディの一部を送信。 -
res.end([data]):レスポンスを終了。
4. 応用:ルーティングの実装(簡易)
5. 実用上の注意点
-
httpモジュールはシンプルですが、複雑なルーティングやテンプレートエンジンなどには向いていないため、Expressのようなフレームワークを使うことが多いです。 -
Content-Typeの適切な設定を忘れると、ブラウザでの表示が乱れることがあります。 -
セキュリティ、CORS、HTTPSなど高度な機能は別途対応が必要です。
まとめ
Node.jsのhttpモジュールは、Webサーバの仕組みを理解するのに最適なツールです。小規模な開発や学習目的では非常に有用であり、基本を理解した上で、より高機能なフレームワークに移行するのが一般的な流れです。
ChatGPT4o 生成日:2025/06/25