HTTPS
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.close([callback])
-
callback
<Function>
See server.close()
from the HTTP module for details.
server.listen()
Starts the HTTPS server listening for encrypted connections. This method is identical to server.listen()
from net.Server
.
server.headersTimeout
-
<number> Default:
40000
See http.Server#headersTimeout
.
server.setTimeout([msecs][, callback])
-
msecs
<number> Default:120000
(2 minutes) -
callback
<Function>
server.timeout
-
<number> Default:
120000
(2 minutes)
See http.Server#timeout
.
server.keepAliveTimeout
-
<number> Default:
5000
(5 seconds)
See http.Server#keepAliveTimeout
.
https.createServer([options][, requestListener])
-
options
<Object> Acceptsoptions
fromtls.createServer()
,tls.createSecureContext()
andhttp.createServer()
. -
requestListener
<Function> A listener to be added to therequest
event.
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);
https.get(options[, callback])
-
options
<Object> | <string> | <URL> Accepts the sameoptions
ashttps.request()
, with themethod
always 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 alloptions
fromhttp.request()
, with some differences in default values:-
protocol
Default:https:
-
port
Default:443
-
agent
Default:https.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:[email protected]'); const req = https.request(options, (res) => { // ... });
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v8.x/docs/api/https.html