nodejsがhttpsリクエストを開始します

WBOY
リリース: 2023-05-23 14:23:07
オリジナル
2672 人が閲覧しました

Node.js は、高速かつ効率的でイベント駆動型の人気のある Javascript 実行環境です。 Node.js では、組み込みの http および https モジュールを使用して、HTTP および HTTPS リクエストを簡単に開始できます。この記事では、Node.js を使用して HTTPS リクエストを開始する方法を紹介します。

1. Node.js の https モジュール

Node.js では、組み込みの https モジュールを使用して HTTPS リクエストを開始できます。 https モジュールは、HTTP リクエストを送信して HTTPS サーバーからデータを取得できる、http モジュールと同様のインターフェイスを提供します。

https モジュールを使用する前に、require メソッドを使用して https モジュールを導入する必要があります:

const https = require('https');

2. HTTPS リクエスト

HTTPS リクエストを開始するには、https.request(options, callback) 関数を使用する必要があります。オプション パラメータは、リクエストされた URL、リクエストされたメソッド、リクエスト ヘッダーなど、リクエストを開始するために必要な情報を含むオブジェクトです。コールバック パラメータは、サーバーの応答を処理するために使用される関数です。この関数には、サーバー応答オブジェクトというパラメーターが 1 つあります。

以下は、HTTPS リクエストを開始するための基本モデルです:

const https = require('https');

const options = {
  // 请求的URL
  hostname: 'example.com',

  // 请求的方法,默认是GET
  method: 'GET',

  // 请求的头信息
  headers: {
    'Content-Type': 'application/json'
  }
};

const req = https.request(options, res => {
  console.log(`状态码: ${res.statusCode}`);

  res.on('data', d => {
    process.stdout.write(d);
  });
});

req.on('error', error => {
  console.error(error);
});

req.end();
ログイン後にコピー

この例では、https.request(options, callback) 関数を使用して HTTPS リクエストを開始します。リクエストされた URL を example.com に、リクエスト メソッドを GET に、リクエスト ヘッダーの Content-Type を application/json に設定します。

サーバーが応答した後、コールバック関数を通じてサーバーの応答を処理します。まずサーバーのステータスコードを出力し、データ受信時に process.stdout.write メソッドを使用してコンソールにデータを出力します。

3. HTTPS リクエストのオプション パラメーター

前のセクションでは、HTTPS リクエストを開始するにはオプション パラメーターが必要であると述べました。 options パラメータはリクエスト情報を含むオブジェクトです。最も基本的な属性は次のとおりです:

  • hostname: リクエストされたホスト名
  • port: リクエストされたポート番号 (通常は HTTPS プロトコル)は 443
  • path: リクエストのパス、つまり、サーバー内のリクエストされたリソースの場所 (/albums
  • など)。method: リクエスト メソッド。一般的に使用されるものは GET です。および POST
  • headers: Accept、User-Agent、Content-Type などのクライアント情報を含むリクエスト ヘッダー。

以下は完全なオプションの例です。パラメータ:

const options = {
  hostname: 'example.com',
  port: 443,
  path: '/albums',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    'User-Agent': 'Mozilla/5.0'
  }
};
ログイン後にコピー

このオプション オブジェクトは、example.com のポート 443 への POST リクエストを表します。リクエスト パスは /albums です。リクエスト ヘッダーには、Content-Type、Content-Length、および User-Agent の 3 つの属性が含まれます。

4. HTTPS 応答の処理

HTTPS リクエストが開始されると、サーバーは応答オブジェクトを返し、それを通じてサーバーの応答を取得できます。応答オブジェクトは読み取り可能なストリームであり、on() メソッドを使用してデータをリッスンし、イベントを終了してサーバーから返されたデータを取得できます。

次に、HTTPS 応答の処理例を示します。

const req = https.request(options, res => {
  let data = '';

  console.log(`状态码: ${res.statusCode}`);

  res.on('data', chunk => {
    data += chunk;
  });

  res.on('end', () => {
    console.log('响应数据: ');
    console.log(data);
  });
});

req.on('error', error => {
  console.error(`请求发生错误:${error}`);
});

req.end();
ログイン後にコピー

この例では、HTTP 応答のステータス コード (statusCode) に基づいて、リクエストが成功したかどうかを判断します。データ受信コールバック関数では、= 演算子を使用して各データ チャンクを完全な応答データに連結します。すべてのデータを受信したら、console.log を使用して完全な応答データを出力します。

5. 暗号化された HTTPS リクエスト

HTTPS は、TLS/SSL プロトコルに基づく安全な HTTP プロトコルであり、公開キー暗号化と秘密キー復号化を使用してデータのセキュリティを保護します。 Node.js では、https モジュールを使用して HTTPS リクエストを開始することは、安全な HTTPS プロトコルを使用することになります。

サーバーが自己署名証明書を使用する場合は、以下に示すように、オプション オブジェクトで acceptUnauthorized 属性を false に設定する必要があります。

const options = {
  hostname: 'example.com',
  port: 443,
  path: '/albums',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    'User-Agent': 'Mozilla/5.0'
  },
  rejectUnauthorized: false
};
ログイン後にコピー

ご覧のとおり、rejectUnauthorized を追加しました。オプションオブジェクトの: false 属性。このオプションは、署名されていない証明書を受け入れるために使用されます。設定されていない場合、サーバーが署名されていない証明書を使用するとエラーが報告されます。

6. 概要

この記事では、Node.js の組み込み https モジュールを使用して HTTPS リクエストを開始する方法を紹介します。 https.request(options, callback) 関数を通じてリクエストを作成し、オプション パラメータを使用してリクエスト情報を設定し、コールバック パラメータを使用してサーバー応答を処理します。同時に、HTTPS リクエストを処理する際にデータ暗号化のセキュリティを確保する方法を紹介しました。

Node.js の組み込み https モジュールは、HTTPS リクエストを開始する便利な方法を提供し、開発中にデータを簡単に取得または送信できるため、アプリケーションをより効率的に開発できます。

以上がnodejsがhttpsリクエストを開始しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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