Spec-Zone.ru › Node.js 4 LTS

HTTPS

Стабильность: 2 — Стабильно

HTTPS — это протокол HTTP поверх TLS/SSL. В Node.js он реализован как отдельный модуль.

Класс: https.Agent

Добавлен в: v0.4.5

Объект Agent для HTTPS, аналогичный http.Agent. Подробнее см. https.request().

Класс: https.Server

Добавлен в: v0.3.4

Этот класс является подклассом tls.Server и излучает события, аналогичные http.Server. Подробнее см. http.Server.

server.setTimeout(msecs, callback)

Добавлен в: v0.11.2

См. http.Server#setTimeout().

server.timeout

Добавлен в: v0.11.2

См. http.Server#timeout.

https.createServer(options[, requestListener])

Добавлен в: v0.3.4

Возвращает новый объект веб-сервера HTTPS. options аналогичен tls.createServer(). requestListener — это функция, которая автоматически добавляется к событию 'request'.

Пример:

// 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);

Или

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

const options = {
  pfx: fs.readFileSync('server.pfx')
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(8000);

server.close([callback])

Добавлен в: v0.1.90

Подробности см. в http.close().

server.listen(handle[, callback])

server.listen(path[, callback])

server.listen(port[, host][, backlog][, callback])

Подробности см. в http.listen().

https.get(options, callback)

Добавлен в: v0.3.6

Аналогично http.get(), но для HTTPS.

options может быть объектом или строкой. Если options является строкой, она автоматически анализируется с помощью url.parse().

Пример:

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

Добавлен в: v0.5.9

Глобальный экземпляр https.Agent для всех запросов HTTPS-клиента.

https.request(options, callback)

Добавлен в: v0.3.6

Отправляет запрос на защищённый веб-сервер.

options может быть объектом или строкой. Если options является строкой, она автоматически анализируется с помощью url.parse().

Все параметры из http.request() допустимы.

Пример:

const https = require('https');

var options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET'
};

var 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();

В параметре options есть следующие параметры:

  • host: Имя домена или IP-адрес сервера, которому нужно отправить запрос. По умолчанию 'localhost'.
  • hostname: Псевдоним для host. Для поддержки url.parse() hostname предпочтительнее, чем host.
  • family: Семейство IP-адресов для использования при разрешении host и hostname. Допустимые значения — 4 или 6.
  • port: Порт удалённого сервера. По умолчанию 443.
  • localAddress: Локальный интерфейс для привязки сетевых соединений.
  • socketPath: Unix-доменная сокета (используйте либо host:port, либо socketPath).
  • method: Строка, определяющая метод HTTP-запроса. По умолчанию 'GET'.
  • path: Путь запроса. По умолчанию '/'. Должен включать строку запроса, если она есть. Например, '/index.html?page=12'. При наличии недопустимых символов в пути запроса выбрасывается исключение. В настоящее время отклоняются только пробелы, но это может измениться в будущем.
  • headers: Объект, содержащий заголовки запроса.
  • auth: Аутентификация в формате Basic, т.е. 'user:password' для вычисления заголовка Authorization.
  • agent: Управляет поведением Agent. При использовании Agent запрос по умолчанию будет Connection: keep-alive. Возможные значения:
    • undefined (по умолчанию): использовать globalAgent для этого хоста и порта.
    • Agent объект: явно использовать переданный Agent.
    • false: Отключает пулинг соединений с помощью Agent, запрос по умолчанию Connection: close.

Также можно указать следующие параметры из tls.connect():

  • pfx: Сертификат, закрытый ключ и сертификаты CA для использования в SSL. Значение по умолчанию null.
  • key: Закрытый ключ для использования в SSL. Значение по умолчанию null.
  • passphrase: Строка пароля для закрытого ключа или pfx. Значение по умолчанию null.
  • cert: Открытый x509-сертификат для использования. Значение по умолчанию null.
  • ca: Строка, Buffer или массив строк или Buffer доверенных сертификатов в формате PEM. Если это опущено, будут использоваться несколько известных "корневых" CA, например, VeriSign. Они используются для авторизации подключений.
  • ciphers: Строка, описывающая используемые или исключаемые шифры. Подробности см. в <https://www.openssl.org/docs/man1.0.2/apps/ciphers.html#CIPHER-LIST-FORMAT
  • rejectUnauthorized: Если true, сертификат сервера проверяется по списку предоставленных CA. Если проверка завершится неудачно, генерируется событие 'error'. Проверка выполняется на уровне соединения, *до* отправки HTTP-запроса. По умолчанию true.
  • secureProtocol: Используемый метод SSL, например, SSLv3_method для принудительного использования версии SSL 3. Возможные значения зависят от вашей установки OpenSSL и определяются в константе SSL_METHODS.
  • servername: Имя сервера для расширения TLS SNI (Server Name Indication).

Для указания этих параметров используйте пользовательский Agent.

Пример:

var 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);

var req = https.request(options, (res) => {
  ...
}

В качестве альтернативы, отключите пулинг соединений, не используя Agent.

Пример:

var 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
};

var 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-v4.x/docs/api/https.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API