Home >Web Front-end >Front-end Q&A >nodejs request https request

nodejs request https request

PHPz
PHPzOriginal
2023-05-27 18:32:392068browse

Node.js is an open source cross-platform JavaScript runtime environment that is very suitable for the development of server-side applications. With the popularity of web applications, https requests have become increasingly popular. Making https requests in Node.js is slightly more complicated than http requests, but it's easy to master. This article will introduce how to use the https module to initiate https requests in Node.js.

1. https request

HTTPS (HyperText Transfer Protocol Secure) is a secure HTTP communication protocol based on TLS/SSL for encrypted transmission. The HTTPS protocol implements encrypted data transmission and server authentication, providing higher security for web applications.

In Node.js, we can use the http and https modules to initiate http or https requests. If we want to make an https request, we need to use the https module. To make an https request in Node.js, we need to obtain a signed certificate and store it locally. When making https requests, this certificate needs to be appended to an https request, otherwise we will not be able to connect to https sites. Let's take a look at how to use the https module to make https requests.

2. Node.js https module

Node.js provides a simple https module, which can easily initiate https requests. The following is the basic usage of the https module:

const https = require('https');
https.get(url, (response) => {
    response.on('data', (data) => {
        console.log(data.toString());
    });
});

In the above code, we first introduce the https module provided by Node.js, and then use its get() method to initiate an https GET request. When response data arrives, we can listen to the data event and then print it to the console.

3. Initiate https request

Now we come to the focus of this article, which is how to initiate https request in Node.js. First, let's look at how to get content from an https site. I will use the Node.js built-in module Crypto to generate the certificate file required for https requests.

  1. Create certificate file
const fs = require('fs');
const crypto = require('crypto');

// 创建证书文件
function createCertificateFile() {
    const cert = crypto.generateKeyPairSync('rsa', {
        modulusLength: 2048,
        publicKeyEncoding: {
            type: 'spki',
            format: 'pem'
        },
        privateKeyEncoding: {
            type: 'pkcs8',
            format: 'pem'
        }
    });

    fs.writeFileSync('cert.pem', cert.privateKey);
    fs.writeFileSync('key.pem', cert.publicKey);
}

createCertificateFile();

In the above code, we use the Node.js built-in module Crypto to generate a 2048-bit RSA key pair and add the private The key and public key are stored in the local file system. These files will be used for security verification when making https requests.

  1. Initiate https request

Now that we have prepared our certificate file, we can start to initiate https request. The following is a simple https request example:

const https = require('https');
const fs = require('fs');

const options = {
    cert: fs.readFileSync('cert.pem'),
    key: fs.readFileSync('key.pem'),
    hostname: 'www.example.com',
    port: 443,
    path: '/',
    method: 'GET'
};

// 发起https请求
const req = https.request(options, (res) => {
    console.log('statusCode: ', res.statusCode);
    console.log('headers: ', res.headers);

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

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

In the above code, we first introduced Node.js’ built-in https module and file system module. We then read the locally stored certificate files and passed them into the options of the https request. In the options object, we specify the host name, port, path and request method of the https site to be accessed. Subsequently, we use the request() method of the https module to initiate an https request. When the response data comes back, we can listen to its data event and print the data to the console.

When using the https module to initiate an https request, we can also pass optional parameters, such as proxy, timeout, response type, etc. Detailed optional parameter information can be found in the Node.js documentation.

4. Summary

In this article, we have learned how to use the https module to initiate https requests in Node.js. We have learned how to generate a certificate file and how to use it to make https requests. With these contents, we can easily make secure https network communication in Node.js. When using the Node.js https module, we need to pay attention to the selection of certificates and the configuration of security authentication to ensure data security and confidentiality.

The above is the detailed content of nodejs request https request. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn