ホームページ > ウェブフロントエンド > jsチュートリアル > node.jsでHTTPサーバーを作成します

node.jsでHTTPサーバーを作成します

Joseph Gordon-Levitt
リリース: 2025-02-25 14:27:09
オリジナル
160 人が閲覧しました

node.js http serverを作成します

Creating a HTTP Server in Node.js

前の記事では、最も基本的なnode.jsプログラムを紹介しました。 「Hello World」プログラムは優れていますが、node.jsは、非常にスケーラブルなサーバーアプリケーションを作成するためにより一般的に使用されます。この記事では、node.jsに構築された簡単なHTTPサーバーを紹介します。

キーポイント

  • node.jsを使用すると、単純なHTTPサーバーを作成できます。重要なステップは、新しいファイルを作成し、適切なコードを挿入してサーバーを実行することです。サーバーは、LocalHostまたはマシンのIPアドレスを介してWebブラウザを介してアクセスできます。
  • サーバーの機能は、メソッド(モジュールの読み込み)とrequire()モジュールのhttpメソッド(サーバーの作成と新しいリクエストのコールバック関数の実行)に基づいて構築されます。コールバック関数は、2つのパラメーター(リクエストと応答)を使用して、クライアント要求を処理してデータを返します。 createServer()
  • サーバーは、
  • メソッドを使用してHTTPステータスコードと応答ヘッダーをクライアントに送り返し、response.writeHead()を使用してHTMLページに書き込み、response.write()を使用して応答を終了します。サーバーは、response.end()メソッドを使用して、着信接続をリッスンします。現在、サーバーは単一のHTMLページのみを返すことができ、将来の拡張機能には、ファイルシステムからWebページの読み取りやHTTP認証の統合が含まれます。 listen()

サーバーを実行している

最初に、「web_server.js」という名前の新しいファイルを作成します。次のコードをファイルに挿入して保存します。

サーバーを起動するには、次のコマンドを入力します。すべてが正常に機能する場合、サーバーが聞いていることを示すメッセージが表示されます。サンプルサーバーは、ポート80(標準のHTTPポート)にバインドしようとすることに注意してください。このポートが使用されているか、マシンで制限されている場合、エラーが発生します。
var http = require("http");
var server = http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write("<!DOCTYPE html>");
  response.write("<html>");
  response.write("<head>");
  response.write("<title>Hello World Page</title>");
  response.write("</head>");
  response.write("<body>");
  response.write("Hello World!");
  response.write("</body>");
  response.write("</html>");
  response.end();
});

server.listen(80);
console.log("Server is listening");
ログイン後にコピー

次のステップは、Webブラウザを使用してサーバーに接続することです。選択したブラウザを起動し、次のリンクのいずれかに向けます。ネットワークの用語では、LocalHost(およびそのIPアドレス127.0.0.1)は、現在使用しているマシンを指します。ブラウザは「Hello World!」を表示する必要があります。
node web_server.js
ログイン後にコピー

<code>http://localhost
http://127.0.0.1</code>
ログイン後にコピー
サーバーがどのように動作するか

サーバーが稼働しているので、コードを分析する時が来ました。最初に注意すべきことは、1行目のrequire()呼び出しです。 node.jsは、巨大な開発者コミュニティを備えたシンプルなモジュールシステムを提供します。 node.jsプログラムは、require()メソッドを使用して単一のモジュールをロードできます。多くのモジュールをダウンロードする必要がありますが、一部のモジュール(例:http)がnode.jsインストールに含まれています。 2行目では、httpモジュールのcreateServer()メソッドを使用して、HTTPサーバーを作成します。ほとんどのnode.js関数と同様に、createServer()はコールバック関数を引数として取得します。このコールバック関数は、サーバーが新しいリクエストを受信するたびに実行されます。コールバック関数は、リクエストと応答の2つのパラメーターを受け入れます。リクエストオブジェクトには、URL、HTTPヘッダーなどのクライアントリクエストに関する情報が含まれています。同様に、応答オブジェクトは、データをクライアントに返すために使用されます。コールバック関数は、最初にresponse.writeHead()メソッドを呼び出します。このメソッドは、HTTPステータスコードと一連の応答ヘッダーをクライアントに送信します。ステータスコードは、リクエストの結果を示すために使用されます。たとえば、誰もが以前に404エラーに遭遇したことがあり、ページが見つからないことを示しています。サンプルサーバーはコード200を返し、成功を示しています。ステータスコードに加えて、サーバーは応答のパラメーターを定義する多くのHTTPヘッダーを返します。ヘッダーを指定しない場合、node.jsはそれらを暗黙的に送信します。サンプルサーバーは、Content-Typeヘッダーのみを指定します。この特定のヘッダーは、応答のMIMEタイプを定義します。 HTML応答の場合、MIMEタイプは「テキスト/HTML」です。次に、サーバーはいくつかの呼び出しを実行しますresponse.write()。これらの呼び出しは、HTMLページに書き込むために使用されます。デフォルトでは、UTF-8文字エンコードが使用されます。技術的には、これらの呼び出しはすべて、パフォーマンスを改善するための単一の呼び出しに結合することができます。ただし、このような簡単な例では、コードの読みやすさのパフォーマンスが犠牲になります。 HTMLページに書き込みた後、response.end()メソッドが呼び出されます。この方法を呼び出すことにより、応答ヘッダーと本体が送信され、リクエストが完了したことをサーバーに伝えます。サンプルサーバーは、パラメーターなしでend()を呼び出します。ただし、一度だけ電話する必要がある場合は、end()のように呼ばれることもあります。 15行目の呼び出しにより、サーバーはポートにバインドし、着信接続をリッスンします。コンピューターには、通信エンドポイントとして機能する何千ものポートがあります。サーバーに接続するために、クライアントはサーバーがどのポートを聴いているかを正確に知る必要があります。ポートはポート番号によって識別され、通常、HTTPサーバーはポート80に耳を傾けます。 write() listen()

結論

この記事では、非常に基本的なHTTPサーバーを紹介します。現在の状態では、サーバーは単一のHTMLページのみを返すことができます。次の数週間で、node.jsの世界に飛び込み、ファイルシステムからWebページを読んだり、HTTP認証の統合など、他の機能を調査します。 HTTPサーバー(FAQ)

を作成するためのFAQ

node.jsの「http.createserver()」メソッドの目的は何ですか?

http.createServer()メソッドは、node.jsに組み込み関数であり、HTTPサーバーの新しいインスタンスを作成します。このサーバーは、着信要求のために耳を傾け、応答を送信します。引数としてrequestListener関数を取り、「リクエスト」イベントに自動的に追加されます。この関数は、サーバーがリクエストを受信するたびに呼び出されます。 requestListener関数には、2つのパラメーターがあります:requesthttp.IncomingMessageのインスタンス)とresponsehttp.ServerResponseのインスタンス)。

node.jsの「respons.writehead()」メソッドはどのように機能しますか?

response.writeHead()メソッドは、node.jsの関数であり、応答ヘッダーをリクエストに送信します。このメソッドは、2つのパラメーターを受け入れます。ステータスコードと応答ヘッダーを表す通常のオブジェクトです。ステータスコードは3ビットHTTPステータスコードであり、2番目のパラメーターは、各キー値ペアがヘッダー名とその値を表すオブジェクトです。このメソッドはresponse.end()の前に呼び出される必要があり、応答ごとに1回のみ呼び出すことができます。

node.jsの「write」と「writehead」の違いは何ですか?

node.jsのwriteおよびwriteHeadメソッドは、サーバーの応答を送信するために使用されます。 writeHeadメソッドは、HTTPステータスコードと一連の応答ヘッダーを送信するために使用されますが、writeメソッドはクライアントに応答本体を送信するために使用されます。 writeHeadメソッドはwriteの前に呼び出す必要があります。どちらもendの前に呼び出され、endはすべての応答ヘッダーと本体が送信されていることをサーバーに信号します。

node.jsで「node-http-server」パッケージを使用する方法は?

node-http-serverは、node.jsのシンプルで簡単に構成できるHTTPまたはHTTPSサーバーです。それを使用するには、最初にnpm install node-http-serverを実行してNPM(ノードパッケージマネージャー)を使用してインストールする必要があります。インストール後、node.jsファイルに導入し、そのdeployメソッドを使用してサーバーを起動できます。 deployメソッドは、構成オブジェクトをパラメーターとして使用し、ポート、ルート、ServerIndexなどのサーバーオプションを指定できます。

node.jsでHTTPリクエストと応答を処理する方法は?

Node.jsでは、モジュールを使用してHTTPリクエストと応答を処理できます。まず、

メソッドを使用してHTTPサーバーを作成する必要があります。このメソッドは、サーバーがリクエストを受信するたびに実行されるコールバック関数をパラメーターとして使用します。コールバック関数には2つのパラメーターがあります。 httpオブジェクトを使用して、URL、HTTPヘッダー、ペイロードなどのクライアント要求に関する情報を取得できます。 http.createServer()オブジェクトは、クライアントへの応答を送信するために使用されます。 requestメソッドを使用してhttpステータスコードとヘッダーを設定し、responseメソッドを使用して応答本体を記述し、requestメソッドを使用して応答を終了できます。 response

以上がnode.jsでHTTPサーバーを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート