この画像は、Node.js サーバーが受信した HTTP リクエストをどのように処理するかを説明する概念図のように見えます。
図に示されているコンポーネントとその関係の説明は次のとおりです。
主なコンポーネント:
-
Node.js サーバー コード:
- コード スニペットは、Node.js での HTTP サーバーのセットアップを示しています。
- 機能:
-
doOnIncoming: 受信リクエストを処理します。
-
doOnError: サーバーエラーを処理します。
-
server.listen(80): ポート 80 でリッスンするようにサーバーを起動します。
- イベントハンドラー:
-
'request': doOnIncoming 関数をトリガーします。
-
'error': doOnError 関数をトリガーします。
-
HTTP リクエスト フロー:
- リクエスト (例: http://twitter/3) がサーバーに送信されます。
- ソケット接続を通じて バッファ として受信されます。
-
Libuv とコンピューターの機能:
-
Libuv は、Node.js とシステムレベルの操作の間のブリッジとして機能します。
-
ネットワーク および ファイル システム タスクを処理します。
- 非同期 I/O 操作を管理します。
-
Node.js/C の機能:
- 自動追加された引数:
-
req (リクエスト オブジェクト): 本文やヘッダーなどの詳細が含まれます。
-
res (応答オブジェクト): send()、status()、json() などのメソッドを提供します。
- 自動実行される関数:
-
doOnIncoming: リクエストを処理し、レスポンスを送信します。
-
doOnError: エラーを処理し、ログに記録します。
-
ストレージ層:
- 関数とサーバー関連のメソッドの定義が含まれています。
- doOnIncoming
- doOnError
-
サーバー オブジェクト (listen メソッドと on メソッドを含む)。
リクエスト フローの概要:
-
HTTP リクエスト がシステムに入ります。
-
ソケットは、ポート (80/443) を使用してリクエストを処理するために開かれます
- リクエストは Libuv を通過し、システムのネットワーク機能およびファイル システム機能と対話します。
- Node.js は、事前定義された関数 (doOnIncoming および doOnError) を使用してリクエストを処理し、応答を送り返します。
この図は、JavaScript、Node.js、およびシステムの基礎となる C 機能の間の相互作用を示しており、Node.js が低レベルでリクエストを処理する方法を明確に示しています。
参照:-
https://frontendmasters.com/courses/servers-node-js/
以上が内部でノードにサーバーを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。