Node.js は、JavaScript と V8 エンジンを使用して構築されたサーバー側アプリケーションです。軽量で効率的なプラットフォームを提供し、開発者が Web アプリケーションやサーバーサイド プログラムなどのプロジェクトを迅速に構築できるようにします。 Node.js では、組み込みモジュールを使用して Web サーバーを作成できます。また、サードパーティのライブラリを使用して HTTP または HTTPS リクエストを送信することもできます。 Node.js で HTTPS リクエストを送信することは非常に一般的な要件ですが、慎重に使用しないとエラーが発生する可能性があります。
HTTPS は、HTTP プロトコルに基づく安全な伝送プロトコルであり、暗号化された伝送に SSL/TLS プロトコルを使用します。 HTTP と比較して、HTTPS はクライアントとサーバー間のデータ送信が改ざんまたは盗聴できないことを保証するため、より安全で信頼性が高くなります。 Node.js では、組み込みの https
モジュールを使用して HTTPS リクエストを送信できますが、使用中にいくつかの問題に注意する必要があります。そうしないと、エラーやセキュリティ リスクが発生する可能性があります。
HTTPS リクエストを送信するときに最も一般的なエラーは、SSL/TLS ハンドシェイクの失敗です。通常の状況では、HTTPS リクエストには通常次のプロセスが含まれます:
このプロセスのいずれかのステップに問題があると、HTTPS リクエストが失敗する可能性があります。このうち、デジタル証明書の検証は最も一般的な問題であり、デジタル証明書はサーバーの身元を証明できるため、検証に失敗すると、クライアントはサーバーの真の身元を確認できなくなります。
SSL/TLS ハンドシェイク失敗の一般的な理由は次のとおりです:
SSL/TLS ハンドシェイクの失敗を回避するには、次の点に注意する必要があります。
Node.js で、https
モジュールを使用して HTTPS リクエストを送信する場合は、次の点に注意する必要があります。
プロトコルを使用してください。
自己署名証明書の場合は、
rejectUnauthorized
プログラムのクラッシュを回避するために、error
イベントを処理し、エラーが発生したときにキャッチして適切なタイミングで処理します。
以下は、Node.js HTTPS リクエスト コードのサンプルです。 const https = require('https'); const options = { hostname: 'www.example.com', port: 443, path: '/api', method: 'GET', headers: { 'Content-Type': 'application/json', }, }; const req = https.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (data) => { console.log(data); }); }); req.on('error', (err) => { console.error(err); }); req.end();
https.request(options, (res) => {...})
を通じてリクエストを送信します。サーバーが応答すると、コールバック関数がトリガーされます。コールバック関数では、サーバーから返されたデータを読み取り、それを処理できます (上記のコードのconsole.log(data) など)。
もちろん、HTTPS リクエストを送信するときに、サーバーがクライアントの ID の検証を必要とする場合は、検証にクライアント証明書を使用する必要もあります。これは、特定のビジネス ニーズに基づいてエンジニアが実装する必要があります。
つまり、プログラムの正確性とセキュリティを確保するには、Node.js で HTTPS リクエストを送信するときにいくつかの問題に注意する必要があります。 SSL/TLS ハンドシェイクエラーに対処する場合は、エラーの原因を慎重に調査する必要がありますが、通常は上記の点で問題を解決できます。関連する規範や基準に従っている限り、プログラムの正常な動作と安全性を確保できます。
以上がNodejs httpsリクエストエラーですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。