ノードhttpモジュール

Node.jsのhttpモジュールは、HTTPサーバーを構築するための便利な関数とクラスを提供します

HTTPコアモジュールは、ノードネットワーキングの重要なモジュールです。

を使用して含めることができます

const http = require('http')

このモジュールは、いくつかのプロパティとメソッド、およびいくつかのクラスを提供します。

プロパティ

http.METHODS

このプロパティには、サポートされているすべてのHTTPメソッドが一覧表示されます。

> require('http').METHODS
[ 'ACL',
  'BIND',
  'CHECKOUT',
  'CONNECT',
  'COPY',
  'DELETE',
  'GET',
  'HEAD',
  'LINK',
  'LOCK',
  'M-SEARCH',
  'MERGE',
  'MKACTIVITY',
  'MKCALENDAR',
  'MKCOL',
  'MOVE',
  'NOTIFY',
  'OPTIONS',
  'PATCH',
  'POST',
  'PROPFIND',
  'PROPPATCH',
  'PURGE',
  'PUT',
  'REBIND',
  'REPORT',
  'SEARCH',
  'SUBSCRIBE',
  'TRACE',
  'UNBIND',
  'UNLINK',
  'UNLOCK',
  'UNSUBSCRIBE' ]

http.STATUS_CODES

このプロパティは、すべてのHTTPステータスコードとその説明を一覧表示します。

> require('http').STATUS_CODES
{ '100': 'Continue',
  '101': 'Switching Protocols',
  '102': 'Processing',
  '200': 'OK',
  '201': 'Created',
  '202': 'Accepted',
  '203': 'Non-Authoritative Information',
  '204': 'No Content',
  '205': 'Reset Content',
  '206': 'Partial Content',
  '207': 'Multi-Status',
  '208': 'Already Reported',
  '226': 'IM Used',
  '300': 'Multiple Choices',
  '301': 'Moved Permanently',
  '302': 'Found',
  '303': 'See Other',
  '304': 'Not Modified',
  '305': 'Use Proxy',
  '307': 'Temporary Redirect',
  '308': 'Permanent Redirect',
  '400': 'Bad Request',
  '401': 'Unauthorized',
  '402': 'Payment Required',
  '403': 'Forbidden',
  '404': 'Not Found',
  '405': 'Method Not Allowed',
  '406': 'Not Acceptable',
  '407': 'Proxy Authentication Required',
  '408': 'Request Timeout',
  '409': 'Conflict',
  '410': 'Gone',
  '411': 'Length Required',
  '412': 'Precondition Failed',
  '413': 'Payload Too Large',
  '414': 'URI Too Long',
  '415': 'Unsupported Media Type',
  '416': 'Range Not Satisfiable',
  '417': 'Expectation Failed',
  '418': 'I\'m a teapot',
  '421': 'Misdirected Request',
  '422': 'Unprocessable Entity',
  '423': 'Locked',
  '424': 'Failed Dependency',
  '425': 'Unordered Collection',
  '426': 'Upgrade Required',
  '428': 'Precondition Required',
  '429': 'Too Many Requests',
  '431': 'Request Header Fields Too Large',
  '451': 'Unavailable For Legal Reasons',
  '500': 'Internal Server Error',
  '501': 'Not Implemented',
  '502': 'Bad Gateway',
  '503': 'Service Unavailable',
  '504': 'Gateway Timeout',
  '505': 'HTTP Version Not Supported',
  '506': 'Variant Also Negotiates',
  '507': 'Insufficient Storage',
  '508': 'Loop Detected',
  '509': 'Bandwidth Limit Exceeded',
  '510': 'Not Extended',
  '511': 'Network Authentication Required' }

http.globalAgent

エージェントオブジェクトのグローバルインスタンスを指します。これは、http.Agentクラス。

これは、HTTPクライアントの接続の永続性と再利用を管理するために使用され、ノードHTTPネットワーキングの重要なコンポーネントです。

詳細http.Agent後でクラスの説明。

メソッド

http.createServer()

の新しいインスタンスを返しますhttp.Serverクラス。

使用法:

const server = http.createServer((req, res) => {
  //handle every single request with this callback
})

http.request()

サーバーにHTTPリクエストを送信し、のインスタンスを作成しますhttp.ClientRequestクラス。

http.get()

に似ているhttp.request()、ただし、HTTPメソッドを自動的にGETに設定し、req.end()自動的に。

クラス

HTTPモジュールは5つのクラスを提供します。

  • http.Agent
  • http.ClientRequest
  • http.Server
  • http.ServerResponse
  • http.IncomingMessage

http.Agent

ノードは、のグローバルインスタンスを作成しますhttp.AgentNodeHTTPネットワーキングの主要コンポーネントであるHTTPクライアントの接続の永続性と再利用を管理するクラス。

このオブジェクトは、サーバーに対して行われたすべての要求がキューに入れられ、単一のソケットが再利用されることを確認します。

また、ソケットのプールも維持します。これは、パフォーマンス上の理由から重要です。

http.ClientRequest

アンhttp.ClientRequestオブジェクトは次の場合に作成されますhttp.request()またはhttp.get()と呼ばれます。

応答を受信すると、responseイベントは、応答とともに呼び出されます。http.IncomingMessage引数としてのインスタンス。

返される応答のデータは、次の2つの方法で読み取ることができます。

  • あなたは呼び出すことができますresponse.read()方法
  • の中にresponseイベントハンドラーのイベントリスナーを設定できますdataイベントなので、ストリーミングされるデータをリッスンできます。

http.Server

このクラスは通常、を使用して新しいサーバーを作成するときにインスタンス化されて返されますhttp.createServer()

サーバーオブジェクトを取得すると、そのメソッドにアクセスできるようになります。

  • close()サーバーが新しい接続を受け入れるのを停止します
  • listen()HTTPサーバーを起動し、接続をリッスンします

http.ServerResponse

によって作成されたhttp.Server2番目のパラメータとしてrequestそれが発火するイベント。

一般的に知られ、コードで次のように使用されますres

const server = http.createServer((req, res) => {
  //res is an http.ServerResponse object
})

ハンドラーで常に呼び出すメソッドは次のとおりです。end()、これにより応答が閉じられ、メッセージが完了し、サーバーはそれをクライアントに送信できます。応答ごとに呼び出す必要があります。

これらのメソッドは、HTTPヘッダーと対話するために使用されます。

  • getHeaderNames()すでに設定されているHTTPヘッダーの名前のリストを取得します
  • getHeaders()すでに設定されているHTTPヘッダーのコピーを取得します
  • setHeader('headername', value)HTTPヘッダー値を設定します
  • getHeader('headername')すでに設定されているHTTPヘッダーを取得します
  • removeHeader('headername')すでに設定されているHTTPヘッダーを削除します
  • hasHeader('headername')応答にそのヘッダーが設定されている場合はtrueを返します
  • headersSent()ヘッダーがすでにクライアントに送信されている場合はtrueを返します

ヘッダーを処理した後、を呼び出すことでクライアントに送信できますresponse.writeHead()、最初のパラメータとしてstatusCode、オプションのステータスメッセージ、およびヘッダーオブジェクトを受け入れます。

応答本文でクライアントにデータを送信するには、次を使用しますwrite()。バッファリングされたデータをHTTP応答ストリームに送信します。

ヘッダーがまだ送信されていない場合response.writeHead()、リクエストで設定されたステータスコードとメッセージとともに、最初にヘッダーを送信します。これは、を設定することで編集できます。statusCodeそしてstatusMessageプロパティ値:

response.statusCode = 500
response.statusMessage = 'Internal Server Error'

http.IncomingMessage

アンhttp.IncomingMessageオブジェクトは次の方法で作成されます。

  • http.Server聞いているときrequestイベント
  • http.ClientRequest聞いているときresponseイベント

応答にアクセスするために使用できます。

  • そのを使用してステータスstatusCodeそしてstatusMessageメソッド
  • そのを使用してヘッダーheadersメソッドまたはrawHeaders
  • そのを使用したHTTPメソッドmethod方法
  • を使用したHTTPバージョンhttpVersion方法
  • を使用したURLurl方法
  • を使用して基になるソケットsocket方法

データはストリームを使用してアクセスされます。http.IncomingMessage読み取り可能なストリームインターフェイスを実装します。

私の無料ダウンロードNode.jsハンドブック


その他のノードチュートリアル: