Each page of the API documentation should have links to other versions of the same page. This will make it easier to switch between the current "live" release at nodejs.org and LTS versions. PR-URL: https://github.com/nodejs/node/pull/10958 Fixes: https://github.com/nodejs/node/issues/10726 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
6.7 KiB
HTTPS
Stability: 2 - Stable
HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a separate module.
Class: https.Agent
An Agent object for HTTPS similar to http.Agent. See https.request()
for more information.
Class: https.Server
This class is a subclass of tls.Server and emits events same as
http.Server. See http.Server for more information.
server.setTimeout([msecs][, callback])
msecs{number} Defaults to 120000 (2 minutes).callback{Function}
server.timeout
- {number} Defaults to 120000 (2 minutes).
See http.Server#timeout.
server.keepAliveTimeout
- {number} Defaults to 5000 (5 seconds).
See http.Server#keepAliveTimeout.
https.createServer([options][, requestListener])
options{Object} Acceptsoptionsfromtls.createServer()andtls.createSecureContext().requestListener{Function} A listener to be added to therequestevent.
Example:
// curl -k https://localhost:8000/
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
Or
const https = require('https');
const fs = require('fs');
const options = {
pfx: fs.readFileSync('test/fixtures/test_cert.pfx'),
passphrase: 'sample'
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
server.close([callback])
callback{Function}
See http.close() for details.
server.listen(handle[, callback])
handle{Object}callback{Function}
server.listen(path[, callback])
path{string}callback{Function}
server.listen([port][, host][, backlog][, callback])
port{number}hostname{string}backlog{number}callback{Function}
See http.listen() for details.
https.get(options[, callback])
options{Object | string | URL} Accepts the sameoptionsashttps.request(), with themethodalways set toGET.callback{Function}
Like http.get() but for HTTPS.
options can be an object, a string, or a URL object. If options is a
string, it is automatically parsed with url.parse(). If it is a URL
object, it will be automatically converted to an ordinary options object.
Example:
const https = require('https');
https.get('https://encrypted.google.com/', (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
}).on('error', (e) => {
console.error(e);
});
https.globalAgent
Global instance of https.Agent for all HTTPS client requests.
https.request(options[, callback])
options{Object | string | URL} Accepts alloptionsfromhttp.request(), with some differences in default values:protocolDefaults tohttps:portDefaults to443.agentDefaults tohttps.globalAgent.
callback{Function}
Makes a request to a secure web server.
The following additional options from tls.connect() are also accepted when using a
custom Agent:
pfx, key, passphrase, cert, ca, ciphers, rejectUnauthorized, secureProtocol, servername
options can be an object, a string, or a URL object. If options is a
string, it is automatically parsed with url.parse(). If it is a URL
object, it will be automatically converted to an ordinary options object.
Example:
const https = require('https');
const options = {
hostname: 'encrypted.google.com',
port: 443,
path: '/',
method: 'GET'
};
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();
Example using options from tls.connect():
const options = {
hostname: 'encrypted.google.com',
port: 443,
path: '/',
method: 'GET',
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
options.agent = new https.Agent(options);
const req = https.request(options, (res) => {
// ...
});
Alternatively, opt out of connection pooling by not using an Agent.
Example:
const options = {
hostname: 'encrypted.google.com',
port: 443,
path: '/',
method: 'GET',
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'),
agent: false
};
const req = https.request(options, (res) => {
// ...
});
Example using a URL as options:
const { URL } = require('url');
const options = new URL('https://abc:xyz@example.com');
const req = https.request(options, (res) => {
// ...
});