ホームページ >ウェブフロントエンド >jsチュートリアル >node.jsでHTTPサーバーを作成します
node.js http serverを作成します
前の記事では、最も基本的なnode.jsプログラムを紹介しました。 「Hello World」プログラムは優れていますが、node.jsは、非常にスケーラブルなサーバーアプリケーションを作成するためにより一般的に使用されます。この記事では、node.jsに構築された簡単なHTTPサーバーを紹介します。
キーポイント
require()
モジュールのhttp
メソッド(サーバーの作成と新しいリクエストのコールバック関数の実行)に基づいて構築されます。コールバック関数は、2つのパラメーター(リクエストと応答)を使用して、クライアント要求を処理してデータを返します。 createServer()
response.writeHead()
を使用してHTMLページに書き込み、response.write()
を使用して応答を終了します。サーバーは、response.end()
メソッドを使用して、着信接続をリッスンします。現在、サーバーは単一のHTMLページのみを返すことができ、将来の拡張機能には、ファイルシステムからWebページの読み取りやHTTP認証の統合が含まれます。 listen()
サーバーを実行している
最初に、「web_server.js」という名前の新しいファイルを作成します。次のコードをファイルに挿入して保存します。サーバーを起動するには、次のコマンドを入力します。すべてが正常に機能する場合、サーバーが聞いていることを示すメッセージが表示されます。サンプルサーバーは、ポート80(標準のHTTPポート)にバインドしようとすることに注意してください。このポートが使用されているか、マシンで制限されている場合、エラーが発生します。
<code class="language-javascript">var http = require("http"); var server = http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/html"}); response.write("<!DOCTYPE html>"); response.write(""); response.write(""); response.write("<title>Hello World Page</title>"); response.write(""); response.write(""); response.write("Hello World!"); response.write(""); response.write(""); response.end(); }); server.listen(80); console.log("Server is listening");</code>
次のステップは、Webブラウザを使用してサーバーに接続することです。選択したブラウザを起動し、次のリンクのいずれかに向けます。ネットワークの用語では、LocalHost(およびそのIPアドレス127.0.0.1)は、現在使用しているマシンを指します。ブラウザは「Hello World!」を表示する必要があります。
<code class="language-bash">node web_server.js</code>
<code>http://localhost http://127.0.0.1</code>サーバーがどのように動作するか
サーバーが稼働しているので、コードを分析する時が来ました。最初に注意すべきことは、1行目の
この記事では、非常に基本的なHTTPサーバーを紹介します。現在の状態では、サーバーは単一のHTMLページのみを返すことができます。次の数週間で、node.jsの世界に飛び込み、ファイルシステムからWebページを読んだり、HTTP認証の統合など、他の機能を調査します。
HTTPサーバー(FAQ) を作成するためのFAQ node.jsの メソッドを使用してHTTPサーバーを作成する必要があります。このメソッドは、サーバーがリクエストを受信するたびに実行されるコールバック関数をパラメーターとして使用します。コールバック関数には2つのパラメーターがあります。 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()
node.jsの「http.createserver()」メソッドの目的は何ですか?
http.createServer()
メソッドは、node.jsに組み込み関数であり、HTTPサーバーの新しいインスタンスを作成します。このサーバーは、着信要求のために耳を傾け、応答を送信します。引数としてrequestListener
関数を取り、「リクエスト」イベントに自動的に追加されます。この関数は、サーバーがリクエストを受信するたびに呼び出されます。 requestListener
関数には、2つのパラメーターがあります:request
(http.IncomingMessage
のインスタンス)とresponse
(http.ServerResponse
のインスタンス)。 node.jsの「respons.writehead()」メソッドはどのように機能しますか?
response.writeHead()
メソッドは、node.jsの関数であり、応答ヘッダーをリクエストに送信します。このメソッドは、2つのパラメーターを受け入れます。ステータスコードと応答ヘッダーを表す通常のオブジェクトです。ステータスコードは3ビットHTTPステータスコードであり、2番目のパラメーターは、各キー値ペアがヘッダー名とその値を表すオブジェクトです。このメソッドはresponse.end()
の前に呼び出される必要があり、応答ごとに1回のみ呼び出すことができます。 node.jsの「write」と「writehead」の違いは何ですか?
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
オブジェクトを使用して、URL、HTTPヘッダー、ペイロードなどのクライアント要求に関する情報を取得できます。 http.createServer()
オブジェクトは、クライアントへの応答を送信するために使用されます。 request
メソッドを使用してhttpステータスコードとヘッダーを設定し、response
メソッドを使用して応答本体を記述し、request
メソッドを使用して応答を終了できます。 response
以上がnode.jsでHTTPサーバーを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。