HTTPS
- Class: https.Agent
- Class: https.Server
- https.createServer(options[, requestListener])
- https.get(options, callback)
- https.globalAgent
- https.request(options, callback)
Стабильность: 2 – Стабильная
АПИ является удовлетворительным. Совместимость с NPM имеет высший приоритет и не будет нарушена кроме случаев явной необходимости.
HTTPS это протокол HTTP через TLS / SSL. В Node.js это реализовано как отдельный модуль.
Class: https.Agent
Объект Agent для HTTPS родобен http.Agent
.
Смотрите https.request()
для получения детальной информации.
Class: https.Server
Этот класс является подклассом tls.Server
и генерирует события так же как и http.Server.
Смотрите http.Server
для получения детальной информации.
server.setTimeout(msecs, callback)
Смотрите http.Server#setTimeout()
.
server.timeout
Смотрите http.Server#timeout
.
https.createServer(options[, requestListener])
Возвращает новый объект 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])
Смотрите http.close()
для получения детальной информации.
server.listen(handle[, callback])
server.listen(path[, callback])
server.listen(port[, host][, backlog][, callback])
Смотрите http.listen() для получения детальной информации.
https.get(options, callback)
Как 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
Глобальный экземпляр https.Agent
для всех клиентских запросов HTTPS.
https.request(options, callback)
Делает запрос на защищенный веб-сервер.
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.end(); req.on('error', (e) => { console.error(e); });
Аргумент опций имеет следующие параметры:
host:
доменное имя или IP-адрес сервера, чтобы выдать запрос. По умолчанию " localhost ".
hostname:
альтернативное [дополнительное] имя для host
.
Для поддержки url.parse()
hostname предпочтительнее host.
family:
IP-адрес, который family
использует при обработке host
и hostname
.
Допустимые значения 4 или 6. Если параметр не указан, будет использоваться как IP v4, так и v6.
port:
Порт удаленного сервера. По умолчанию 443.
localAddress:
Локальный интерфейс для привязки сетевых соединений.
socketPath:
доменный сокет Unix (используйте один из хостов: port
или socketPath
).
method:
Строка, определяющая метод запроса HTTP. По умолчанию 'GET'
.
path:
Путь запроса. По умолчанию '/'
. Должен включать в себя строку запроса, если таковые имеются. НАПРИМЕР. '/index.html?page=12'
. Срабатывает исключение, когда путь запроса содержит недопустимые символы. В настоящее время недопустимы только пробелы, но это может измениться в будущем
headers:
Объект, содержащий заголовки запроса.
auth:
Базовая аутентификация, т.е. используется 'user:password'
, чтобы вычислить заголовок авторизации.
agent:
Управляет поведением Agent
.
Когда агент используется Agent
запрос будет изменен по умолчанию на Connection: Keep-Alive
. Возможные значения:
- undefined (по умолчанию): использовать
globalAgent
для этого хоста и порта. - Объект Agent: напрямую использует переданное в
Agent
. false:
перестает соединяться сAgent
посредством пулов соединений, по умолчанию меняет запрос наConnection: close
.
Могут быть указаны также следующие варианты от tls.connect()
. Тем не менее, globalAgent
игнорирует следующее без уведомлений.
pfx:
Сертификат, секретный ключ и сертификаты CA для использования SSL.По умолчанию null.
key:
Секретный ключ для использования SSL.По умолчанию null.
passphrase:
Строка многословный пароля для секретного ключа или PFX. По умолчанию null.
cert:
Открытый сертификат x509. По умолчанию null.
ca:
Строка, буфер или массив строк или буферов доверенных сертификатов в формате PEM. Если это не принимается во внимание то , будет использоваться хорошо известный "корень"
CA, как VeriSign
. Они используются для авторизации соединения.
ciphers:
Строка, описывающая шифры для использования или исключения. Прочтите
для получения деталей о формате.
rejectUnauthorized:
Если значение true
, то сертификат сервера проверяется на соответствие списку поставляемых CA. Генерируется событие 'error'
, если проверка неудачна. Проверка происходит на уровне подключения, перед тем запрос HTTP посылается. По умолчанию true.
secureProtocol:
Метод SSL, например, SSLv3_method чтобы запустить SSL version 3. Возможные значения зависят от установки OpenSSL и определены в постоянных методах SSL.
servername:
Имя сервера для SNI (Индикация Имени Сервера) расширение TLS.
Для того, чтобы задать эти параметры, используйте пользовательский 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) => { ... });