Spec-Zone.ru › Deno 2

http2

Модуль node:http2 предоставляет реализацию протокола HTTP/2. Его можно использовать следующим образом:

import http2 from 'node:http2';

Использование в Deno

import * as mod from "node:http2";

класс Http2ServerRequest

наследует stream.Readable

Использование в Deno

import { Http2ServerRequest } from "node:http2";

Объект Http2ServerRequest создаётся объектом Server или SecureServer и передаётся в качестве первого аргумента событию 'request'. Его можно использовать для доступа к состоянию запроса, заголовкам и данным.

Конструкторы

Http2ServerRequest(
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
options: stream.ReadableOptions,
rawHeaders: readonly string[],
)
новый

Свойства

aborted: boolean
только для чтения

Свойство request.aborted будет иметь значение true, если запрос был прерван.

authority: string
только для чтения

Псевдополе заголовка authority запроса. Поскольку HTTP/2 позволяет задавать в запросах либо :authority, либо host, это значение определяется на основе req.headers[':authority'], если оно задано. В противном случае оно определяется на основе req.headers['host'].

complete: boolean
только для чтения

Свойство request.complete будет иметь значение true, если запрос был завершён, прерван или уничтожен.

connection: net.Socket | tls.TLSSocket
устарело
только для чтения

См. request.socket.

headers: IncomingHttpHeaders
только для чтения

Объект заголовков запроса/ответа.

Пары «ключ—значение», содержащие имена и значения заголовков. Имена заголовков приводятся к нижнему регистру.

// Prints something like:
//
// { 'user-agent': 'curl/7.22.0',
//   host: '127.0.0.1:8000',
//   accept: '*' }
console.log(request.headers);

См. HTTP/2 Headers Object.

В HTTP/2 путь запроса, имя хоста, протокол и метод представлены специальными заголовками с префиксом в виде символа : (например, ':path'). Эти специальные заголовки включаются в объект request.headers. Необходимо следить за тем, чтобы случайно не изменять эти специальные заголовки, иначе могут возникнуть ошибки. Например, удаление всех заголовков запроса приведёт к ошибкам:

removeAllHeaders(request.headers);
assert(request.url);   // Fails because the :path header has been removed
httpVersion: string
только для чтения

Для запроса сервера — версия HTTP, отправленная клиентом. Для ответа клиента — версия HTTP подключённого сервера. Возвращает '2.0'.

Кроме того, message.httpVersionMajor — это первое целое число, а message.httpVersionMinor — второе.

httpVersionMajor: number
только для чтения
httpVersionMinor: number
только для чтения
method: string
только для чтения

Метод запроса в виде строки. Только для чтения. Примеры: 'GET', 'DELETE'.

rawHeaders: string[]
только для чтения

Список исходных заголовков запроса/ответа в точности в том виде, в каком они были получены.

Ключи и значения находятся в одном списке. Это не список кортежей. Таким образом, элементы с чётными индексами являются ключами, а элементы с нечётными индексами — соответствующими значениями.

Имена заголовков не приводятся к нижнему регистру, а дубликаты не объединяются.

// Prints something like:
//
// [ 'user-agent',
//   'this is invalid because there can be only one',
//   'User-Agent',
//   'curl/7.22.0',
//   'Host',
//   '127.0.0.1:8000',
//   'ACCEPT',
//   '*' ]
console.log(request.rawHeaders);
rawTrailers: string[]
только для чтения

Исходные ключи и значения трейлеров запроса/ответа в точности в том виде, в каком они были получены. Заполняется только при событии 'end'.

scheme: string
только для чтения

Псевдополе заголовка scheme запроса, указывающее часть целевого URL, содержащую схему.

socket: net.Socket | tls.TLSSocket
только для чтения

Возвращает объект Proxy, который действует как net.Socket (или tls.TLSSocket), но применяет геттеры, сеттеры и методы с учётом логики HTTP/2.

Свойства destroyed, readable и writable считываются из request.stream и задаются для него.

Методы destroy, emit, end, on и once вызываются для request.stream.

Метод setTimeout вызывается для request.stream.session.

При обращении к pause, read, resume и write будет вызвана ошибка с кодом ERR_HTTP2_NO_SOCKET_MANIPULATION. Дополнительные сведения см. в разделе Http2Session and Sockets.

Все остальные операции напрямую перенаправляются сокету. При использовании TLS вызовите request.socket.getPeerCertificate(), чтобы получить данные аутентификации клиента.

stream: ServerHttp2Stream
только для чтения

Объект Http2Stream, лежащий в основе запроса.

trailers: IncomingHttpHeaders
только для чтения

Объект трейлеров запроса/ответа. Заполняется только при событии 'end'.

url: string

Строка URL запроса. Она содержит только URL, указанный в фактическом HTTP-запросе. Если запрос имеет вид:

GET /status?name=ryan HTTP/1.1
Accept: text/plain

Тогда request.url будет иметь значение:

'/status?name=ryan'

Чтобы разобрать URL на составляющие, можно использовать new URL():

$ node
> new URL('/status?name=ryan', 'http://example.com')
URL {
  href: 'http://example.com/status?name=ryan',
  origin: 'http://example.com',
  protocol: 'http:',
  username: '',
  password: '',
  host: 'example.com',
  hostname: 'example.com',
  port: '',
  pathname: '/status',
  search: '?name=ryan',
  searchParams: URLSearchParams { 'name' => 'ryan' },
  hash: ''
}

Методы

addListener(
event: "aborted",
listener: (
hadError: boolean,
code: number,
) => void
,
): this
addListener(
event: "close",
listener: () => void,
): this
addListener(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
addListener(
event: "end",
listener: () => void,
): this
addListener(
event: "readable",
listener: () => void,
): this
addListener(
event: "error",
listener: (err: Error) => void,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(
event: "aborted",
hadError: boolean,
code: number,
): boolean
emit(event: "close"): boolean
emit(
event: "data",
chunk: Buffer | string,
): boolean
emit(event: "end"): boolean
emit(event: "readable"): boolean
emit(
event: "error",
err: Error,
): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "aborted",
listener: (
hadError: boolean,
code: number,
) => void
,
): this
on(
event: "close",
listener: () => void,
): this
on(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
on(
event: "end",
listener: () => void,
): this
on(
event: "readable",
listener: () => void,
): this
on(
event: "error",
listener: (err: Error) => void,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "aborted",
listener: (
hadError: boolean,
code: number,
) => void
,
): this
once(
event: "close",
listener: () => void,
): this
once(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
once(
event: "end",
listener: () => void,
): this
once(
event: "readable",
listener: () => void,
): this
once(
event: "error",
listener: (err: Error) => void,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "aborted",
listener: (
hadError: boolean,
code: number,
) => void
,
): this
prependListener(
event: "close",
listener: () => void,
): this
prependListener(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
prependListener(
event: "end",
listener: () => void,
): this
prependListener(
event: "readable",
listener: () => void,
): this
prependListener(
event: "error",
listener: (err: Error) => void,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "aborted",
listener: (
hadError: boolean,
code: number,
) => void
,
): this
prependOnceListener(
event: "close",
listener: () => void,
): this
prependOnceListener(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
prependOnceListener(
event: "end",
listener: () => void,
): this
prependOnceListener(
event: "readable",
listener: () => void,
): this
prependOnceListener(
event: "error",
listener: (err: Error) => void,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
read(size?: number):
Buffer
| string
| null
setTimeout(
msecs: number,
callback?: () => void,
): void

Задаёт значение тайм-аута для Http2Stream равным msecs. Если указан callback, он добавляется в качестве обработчика события 'timeout' объекта ответа.

Если к запросу, ответу или серверу не добавлен обработчик события 'timeout', то Http2Stream уничтожаются по истечении тайм-аута. Если для событий 'timeout' запроса, ответа или сервера назначен обработчик, сокеты с истёкшим временем ожидания необходимо обрабатывать явно.


класс Http2ServerResponse

наследует stream.Writable

Использование в Deno

import { Http2ServerResponse } from "node:http2";

Этот объект создается внутренними средствами HTTP-сервера, а не пользователем. Он передается в качестве второго параметра событию 'request'.

Конструкторы

Http2ServerResponse(stream: ServerHttp2Stream)
новый

Параметры типа

Request extends Http2ServerRequest = Http2ServerRequest

Свойства

connection: net.Socket | tls.TLSSocket
устарело
только для чтения

См. response.socket.

finished: boolean
устарело
только для чтения

Логическое значение, указывающее, завершена ли отправка ответа. Изначально имеет значение false. После выполнения response.end() значение станет true.

headersSent: boolean
только для чтения

Значение true, если заголовки были отправлены, и false в противном случае (только для чтения).

req: Request
только для чтения

Ссылка на исходный объект HTTP2 request.

sendDate: boolean

Если имеет значение true, заголовок Date будет автоматически сформирован и отправлен в ответе, если он еще не присутствует в заголовках. По умолчанию — true.

Отключать это следует только при тестировании; протокол HTTP требует наличия заголовка Date в ответах.

socket: net.Socket | tls.TLSSocket
только для чтения

Возвращает объект Proxy, который действует как net.Socket (или tls.TLSSocket), но применяет геттеры, сеттеры и методы в соответствии с логикой HTTP/2.

Свойства destroyed, readable и writable будут получены из response.stream и заданы для него.

Методы destroy, emit, end, on и once будут вызваны для response.stream.

Метод setTimeout будет вызван для response.stream.session.

Вызов pause, read, resume и write приведет к ошибке с кодом ERR_HTTP2_NO_SOCKET_MANIPULATION. Дополнительные сведения см. в Http2Session and Sockets.

Все остальные операции будут напрямую перенаправлены сокету.

import http2 from 'node:http2';
const server = http2.createServer((req, res) => {
  const ip = req.socket.remoteAddress;
  const port = req.socket.remotePort;
  res.end(`Your IP address is ${ip} and your source port is ${port}.`);
}).listen(3000);
statusCode: number

При использовании неявных заголовков (если явно не вызывается response.writeHead()) это свойство задает код состояния, который будет отправлен клиенту при сбросе заголовков.

response.statusCode = 404;

После отправки заголовков ответа клиенту это свойство указывает отправленный код состояния.

statusMessage: ""

Сообщение о состоянии не поддерживается в HTTP/2 (RFC 7540 8.1.2.4). Возвращается пустая строка.

stream: ServerHttp2Stream
только для чтения

Объект Http2Stream, лежащий в основе ответа.

Методы

addListener(
event: "close",
listener: () => void,
): this
addListener(
event: "drain",
listener: () => void,
): this
addListener(
event: "error",
listener: (error: Error) => void,
): this
addListener(
event: "finish",
listener: () => void,
): this
addListener(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
addListener(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
addTrailers(trailers: OutgoingHttpHeaders): void

Этот метод добавляет к ответу завершающие заголовки HTTP (заголовки, расположенные в конце сообщения).

Попытка задать имя или значение поля заголовка, содержащее недопустимые символы, приведет к возникновению исключения TypeError.

appendHeader(
name: string,
value: string | string[],
): void

Добавляет одно значение заголовка в объект заголовков.

Если значение представляет собой массив, это равносильно многократному вызову данного метода.

Если для заголовка еще нет значений, это равносильно вызову setHeader.

Попытка задать имя или значение поля заголовка, содержащее недопустимые символы, приведет к возникновению исключения TypeError.

// Returns headers including "set-cookie: a" and "set-cookie: b"
const server = http2.createServer((req, res) => {
  res.setHeader('set-cookie', 'a');
  res.appendHeader('set-cookie', 'b');
  res.writeHead(200);
  res.end('ok');
});
createPushResponse(
headers: OutgoingHttpHeaders,
callback: (
err: Error | null,
res: Http2ServerResponse,
) => void
,
): void

Вызывает http2stream.pushStream() с заданными заголовками и в случае успеха передает указанный Http2Stream в качестве параметра обратного вызова для вновь созданного Http2ServerResponse. Если Http2ServerRequest закрывается, обратный вызов вызывается с ошибкой ERR_HTTP2_INVALID_STREAM.

emit(event: "close"): boolean
emit(event: "drain"): boolean
emit(
event: "error",
error: Error,
): boolean
emit(event: "finish"): boolean
emit(
event: "pipe",
src: stream.Readable,
): boolean
emit(
event: "unpipe",
src: stream.Readable,
): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
end(callback?: () => void): this

Этот метод сообщает серверу, что все заголовки и тело ответа отправлены и сервер должен считать это сообщение завершенным. Метод response.end() ОБЯЗАТЕЛЬНО должен быть вызван для каждого ответа.

Если указан data, это равносильно вызову response.write(data, encoding), за которым следует response.end(callback).

Если указан callback, он будет вызван после завершения потока ответа.

end(
data: string | Uint8Array,
callback?: () => void,
): this
end(
data: string | Uint8Array,
encoding: BufferEncoding,
callback?: () => void,
): this
getHeader(name: string): string

Читает заголовок, который уже поставлен в очередь, но еще не отправлен клиенту. Регистр символов в имени не учитывается.

const contentType = response.getHeader('content-type');
getHeaderNames(): string[]

Возвращает массив, содержащий уникальные имена текущих исходящих заголовков. Все имена заголовков записаны строчными буквами.

response.setHeader('Foo', 'bar');
response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);

const headerNames = response.getHeaderNames();
// headerNames === ['foo', 'set-cookie']
getHeaders(): OutgoingHttpHeaders

Возвращает поверхностную копию текущих исходящих заголовков. Поскольку используется поверхностная копия, значения-массивы можно изменять без дополнительных вызовов различных методов модуля http, связанных с заголовками. Ключи возвращаемого объекта — имена заголовков, а значения — соответствующие значения заголовков. Все имена заголовков записаны строчными буквами.

Объект, возвращаемый методом response.getHeaders(), не наследует прототип от объекта JavaScript Object. Это означает, что стандартные методы Object, такие как obj.toString(), obj.hasOwnProperty() и другие, не определены и не будут работать.

response.setHeader('Foo', 'bar');
response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);

const headers = response.getHeaders();
// headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] }
hasHeader(name: string): boolean

Возвращает true, если заголовок с именем name в данный момент задан среди исходящих заголовков. Регистр символов в имени заголовка не учитывается.

const hasContentType = response.hasHeader('content-type');
on(
event: "close",
listener: () => void,
): this
on(
event: "drain",
listener: () => void,
): this
on(
event: "error",
listener: (error: Error) => void,
): this
on(
event: "finish",
listener: () => void,
): this
on(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
on(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "close",
listener: () => void,
): this
once(
event: "drain",
listener: () => void,
): this
once(
event: "error",
listener: (error: Error) => void,
): this
once(
event: "finish",
listener: () => void,
): this
once(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
once(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "close",
listener: () => void,
): this
prependListener(
event: "drain",
listener: () => void,
): this
prependListener(
event: "error",
listener: (error: Error) => void,
): this
prependListener(
event: "finish",
listener: () => void,
): this
prependListener(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
prependListener(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "close",
listener: () => void,
): this
prependOnceListener(
event: "drain",
listener: () => void,
): this
prependOnceListener(
event: "error",
listener: (error: Error) => void,
): this
prependOnceListener(
event: "finish",
listener: () => void,
): this
prependOnceListener(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
prependOnceListener(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
removeHeader(name: string): void

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

response.removeHeader('Content-Encoding');
setHeader(
name: string,
value:
number
| string
| readonly string[]
,
): void

Задает одно значение заголовка для неявных заголовков. Если такой заголовок уже есть среди заголовков, предназначенных для отправки, его значение будет заменено. Чтобы отправить несколько заголовков с одинаковым именем, используйте массив строк.

response.setHeader('Content-Type', 'text/html; charset=utf-8');

или

response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']);

Попытка задать имя или значение поля заголовка, содержащее недопустимые символы, приведет к возникновению исключения TypeError.

Заголовки, заданные с помощью response.setHeader(), будут объединены с заголовками, переданными в response.writeHead(); при этом приоритет будет отдан заголовкам, переданным в response.writeHead().

// Returns content-type = text/plain
const server = http2.createServer((req, res) => {
  res.setHeader('Content-Type', 'text/html; charset=utf-8');
  res.setHeader('X-Foo', 'bar');
  res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
  res.end('ok');
});
setTimeout(
msecs: number,
callback?: () => void,
): void

Задает значение времени ожидания для Http2Stream — msecs. Если указан обратный вызов, он добавляется в качестве обработчика события 'timeout' объекта ответа.

Если для запроса, ответа или сервера не добавлен обработчик события 'timeout', то по истечении времени ожидания Http2Stream уничтожаются. Если для событий 'timeout' запроса, ответа или сервера назначен обработчик, необходимо самостоятельно обрабатывать сокеты, для которых истекло время ожидания.

write(
chunk: string | Uint8Array,
callback?: (err: Error) => void,
): boolean

Если этот метод вызван, а response.writeHead() еще не вызывался, будет выполнен переход в режим неявных заголовков и сброс неявных заголовков.

Отправляет фрагмент тела ответа. Этот метод можно вызывать несколько раз для отправки последовательных частей тела.

В модуле node:http тело ответа не отправляется, если запрос является запросом HEAD. Аналогично, ответы 204 и 304 не должны содержать тело сообщения.

chunk может быть строкой или буфером. Если chunk является строкой, второй параметр определяет способ ее кодирования в поток байтов. По умолчанию encoding имеет значение 'utf8'. callback будет вызван, когда этот фрагмент данных будет сброшен.

Это необработанное тело HTTP, не связанное с кодированием составного тела более высокого уровня, которое может использоваться.

При первом вызове response.write() клиенту отправляются буферизованные заголовки и первый фрагмент тела. При втором вызове response.write() Node.js предполагает, что данные будут передаваться потоком, и отправляет новые данные отдельно. Иными словами, ответ буферизуется вплоть до первого фрагмента тела.

Возвращает true, если все данные успешно сброшены в буфер ядра. Возвращает false, если все данные или их часть помещены в очередь в памяти пользователя. Событие 'drain' будет сгенерировано, когда буфер снова освободится.

write(
chunk: string | Uint8Array,
encoding: BufferEncoding,
callback?: (err: Error) => void,
): boolean
writeContinue(): void

Отправляет клиенту статус 100 Continue, указывающий, что тело запроса следует отправить. См. событие 'checkContinue' в Http2Server и Http2SecureServer.

writeEarlyHints(hints: Record<string, string | string[]>): void

Отправляет клиенту статус 103 Early Hints с заголовком Link, указывая, что пользовательский агент может предварительно загрузить связанные ресурсы или установить с ними предварительное соединение. hints — это объект, содержащий значения заголовков, отправляемых в сообщении с ранними подсказками.

Пример

const earlyHintsLink = '</styles.css>; rel=preload; as=style';
response.writeEarlyHints({
  'link': earlyHintsLink,
});

const earlyHintsLinks = [
  '</styles.css>; rel=preload; as=style',
  '</scripts.js>; rel=preload; as=script',
];
response.writeEarlyHints({
  'link': earlyHintsLinks,
});
writeHead(
statusCode: number,
headers?: OutgoingHttpHeaders,
): this

Отправляет заголовок ответа на запрос. Код состояния — это трехзначный код состояния HTTP, например 404. Последний аргумент, headers, содержит заголовки ответа.

Возвращает ссылку на Http2ServerResponse, что позволяет объединять вызовы в цепочку.

Для совместимости с HTTP/1 в качестве второго аргумента можно передать удобочитаемое statusMessage. Однако, поскольку statusMessage не имеет значения в HTTP/2, аргумент не повлияет на результат, и будет выдано предупреждение процесса.

const body = 'hello world';
response.writeHead(200, {
  'Content-Length': Buffer.byteLength(body),
  'Content-Type': 'text/plain; charset=utf-8',
});

Content-Length задается в байтах, а не в символах. API Buffer.byteLength() можно использовать для определения количества байтов в заданной кодировке. В исходящих сообщениях Node.js не проверяет, совпадает ли Content-Length с длиной передаваемого тела. Однако при получении сообщений Node.js автоматически отклоняет сообщения, если Content-Length не соответствует фактическому размеру полезной нагрузки.

Этот метод можно вызвать для сообщения не более одного раза до вызова response.end().

Если response.write() или response.end() вызваны до этого метода, неявные/изменяемые заголовки будут вычислены и вызовут эту функцию.

Заголовки, заданные с помощью response.setHeader(), будут объединены с заголовками, переданными в response.writeHead(); при этом приоритет будет отдан заголовкам, переданным в response.writeHead().

// Returns content-type = text/plain
const server = http2.createServer((req, res) => {
  res.setHeader('Content-Type', 'text/html; charset=utf-8');
  res.setHeader('X-Foo', 'bar');
  res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
  res.end('ok');
});

Попытка задать имя или значение поля заголовка, содержащее недопустимые символы, приведет к возникновению исключения TypeError.

writeHead(
statusCode: number,
statusMessage: string,
headers?: OutgoingHttpHeaders,
): this

функция connect

Использование в Deno

import { connect } from "node:http2";

Перегрузка 1

connect(
authority: string | url.URL,
listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
,
): ClientHttp2Session

Возвращает экземпляр ClientHttp2Session.

import http2 from 'node:http2';
const client = http2.connect('https://localhost:1234');

// Use the client

client.close();

Параметры

authority: string | url.URL

Удаленный сервер HTTP/2, к которому выполняется подключение. Параметр должен иметь вид минимального корректного URL с префиксом http:// или https://, именем хоста и IP-портом (если используется нестандартный порт). Данные пользователя (идентификатор пользователя и пароль), путь, строка запроса и фрагмент URL игнорируются.

listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void

Будет зарегистрирован как однократный обработчик события 'connect'.

Тип возвращаемого значения

ClientHttp2Session

Перегрузка 2

connect(
authority: string | url.URL,
options?: ClientSessionOptions | SecureClientSessionOptions,
listener?: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
,
): ClientHttp2Session

Параметры

authority: string | url.URL
options: ClientSessionOptions | SecureClientSessionOptions
необязательный
listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
необязательный

Тип возвращаемого значения

ClientHttp2Session

функция createSecureServer

Использование в Deno

import { createSecureServer } from "node:http2";

Перегрузка 1

createSecureServer(onRequestHandler?: (
request: Http2ServerRequest,
response: Http2ServerResponse,
) => void
): Http2SecureServer

Возвращает экземпляр tls.Server, который создаёт экземпляры Http2Session и управляет ими.

import http2 from 'node:http2';
import fs from 'node:fs';

const options = {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem'),
};

// Create a secure HTTP/2 server
const server = http2.createSecureServer(options);

server.on('stream', (stream, headers) => {
  stream.respond({
    'content-type': 'text/html; charset=utf-8',
    ':status': 200,
  });
  stream.end('<h1>Hello World</h1>');
});

server.listen(8443);

Параметры

onRequestHandler: (
request: Http2ServerRequest,
response: Http2ServerResponse,
) => void
необязательный

См. Compatibility API

Возвращаемый тип

Http2SecureServer

Перегрузка 2

createSecureServer<
Http1Request extends IncomingMessage = IncomingMessage,
Http1Response extends ServerResponse = ServerResponse,
Http2Request extends Http2ServerRequest = Http2ServerRequest,
Http2Response extends Http2ServerResponse = Http2ServerResponse,
>
(
options: SecureServerOptions<Http1Request, Http1Response, Http2Request, Http2Response>,
onRequestHandler?: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): Http2SecureServer<Http1Request, Http1Response, Http2Request, Http2Response>

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Параметры

options: SecureServerOptions<Http1Request, Http1Response, Http2Request, Http2Response>
onRequestHandler: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
необязательный

Возвращаемый тип

Http2SecureServer<Http1Request, Http1Response, Http2Request, Http2Response>

функция createServer

Использование в Deno

import { createServer } from "node:http2";

Перегрузка 1

createServer(onRequestHandler?: (
request: Http2ServerRequest,
response: Http2ServerResponse,
) => void
): Http2Server

Возвращает экземпляр net.Server, который создаёт экземпляры Http2Session и управляет ими.

Поскольку не известно ни одного браузера, поддерживающего HTTP/2 без шифрования, при обмене данными с клиентами-браузерами необходимо использовать createSecureServer.

import http2 from 'node:http2';

// Create an unencrypted HTTP/2 server.
// Since there are no browsers known that support
// unencrypted HTTP/2, the use of `http2.createSecureServer()`
// is necessary when communicating with browser clients.
const server = http2.createServer();

server.on('stream', (stream, headers) => {
  stream.respond({
    'content-type': 'text/html; charset=utf-8',
    ':status': 200,
  });
  stream.end('<h1>Hello World</h1>');
});

server.listen(8000);

Параметры

onRequestHandler: (
request: Http2ServerRequest,
response: Http2ServerResponse,
) => void
необязательный

См. Compatibility API

Возвращаемый тип

Http2Server

Перегрузка 2

createServer<
Http1Request extends IncomingMessage = IncomingMessage,
Http1Response extends ServerResponse = ServerResponse,
Http2Request extends Http2ServerRequest = Http2ServerRequest,
Http2Response extends Http2ServerResponse = Http2ServerResponse,
>
(
options: ServerOptions<Http1Request, Http1Response, Http2Request, Http2Response>,
onRequestHandler?: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): Http2Server<Http1Request, Http1Response, Http2Request, Http2Response>

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Параметры

options: ServerOptions<Http1Request, Http1Response, Http2Request, Http2Response>
onRequestHandler: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
необязательный

Возвращаемый тип

Http2Server<Http1Request, Http1Response, Http2Request, Http2Response>

функция getDefaultSettings

Использование в Deno

import { getDefaultSettings } from "node:http2";
getDefaultSettings(): Settings
Совместимость с Deno

Эта функция является неработающей заглушкой.

Возвращает объект, содержащий настройки по умолчанию для экземпляра Http2Session. При каждом вызове этот метод возвращает новый экземпляр объекта, поэтому возвращённые экземпляры можно безопасно изменять для использования.

Возвращаемый тип

Settings

функция getPackedSettings

Использование в Deno

import { getPackedSettings } from "node:http2";
getPackedSettings(settings: Settings): Buffer
Совместимость с Deno

Эта функция является неработающей заглушкой.

Возвращает экземпляр Buffer, содержащий сериализованное представление заданных настроек HTTP/2, определённых в спецификации HTTP/2. Предназначен для использования с полем заголовка HTTP2-Settings.

import http2 from 'node:http2';

const packed = http2.getPackedSettings({ enablePush: false });

console.log(packed.toString('base64'));
// Prints: AAIAAAAA

Параметры

settings: Settings

Возвращаемый тип

Buffer

функция getUnpackedSettings

Использование в Deno

import { getUnpackedSettings } from "node:http2";
getUnpackedSettings(buf: Uint8Array): Settings
Совместимость с Deno

Эта функция является неработающей заглушкой.

Возвращает HTTP/2 Settings Object, содержащий десериализованные настройки из заданного Buffer, сформированного с помощью http2.getPackedSettings().

Параметры

buf: Uint8Array

Упакованные настройки.

Возвращаемый тип

Settings

функция performServerHandshake

Использование в Deno

import { performServerHandshake } from "node:http2";
performServerHandshake<
Http1Request extends IncomingMessage = IncomingMessage,
Http1Response extends ServerResponse = ServerResponse,
Http2Request extends Http2ServerRequest = Http2ServerRequest,
Http2Response extends Http2ServerResponse = Http2ServerResponse,
>
(
socket: stream.Duplex,
options?: ServerOptions<Http1Request, Http1Response, Http2Request, Http2Response>,
): ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>

Создаёт сеанс сервера HTTP/2 на основе существующего сокета.

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Параметры

socket: stream.Duplex

Дуплексный поток

options: ServerOptions<Http1Request, Http1Response, Http2Request, Http2Response>
необязательный

Можно указать любые параметры [createServer](/api/node/http2/.

Возвращаемый тип

ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>

интерфейс AlternativeServiceOptions

Использование в Deno

import { type AlternativeServiceOptions } from "node:http2";

Свойства

origin:
number
| string
| url.URL

интерфейс ClientHttp2Session

наследует Http2Session

Использование в Deno

import { type ClientHttp2Session } from "node:http2";

Методы

request(
headers?: OutgoingHttpHeaders,
options?: ClientSessionRequestOptions,
): ClientHttp2Stream

Только для экземпляров клиента HTTP/2 Http2Session метод http2session.request() создаёт и возвращает экземпляр Http2Stream, который можно использовать для отправки запроса HTTP/2 подключённому серверу.

При первом создании ClientHttp2Session сокет может быть ещё не подключён. Если в это время вызывается clienthttp2session.request(), фактический запрос будет отложен до готовности сокета. Если session будет закрыт до выполнения фактического запроса, возникнет ошибка ERR_HTTP2_GOAWAY_SESSION.

Этот метод доступен только в том случае, если http2session.type равно http2.constants.NGHTTP2_SESSION_CLIENT.

import http2 from 'node:http2';
const clientSession = http2.connect('https://localhost:1234');
const {
  HTTP2_HEADER_PATH,
  HTTP2_HEADER_STATUS,
} = http2.constants;

const req = clientSession.request({ [HTTP2_HEADER_PATH]: '/' });
req.on('response', (headers) => {
  console.log(headers[HTTP2_HEADER_STATUS]);
  req.on('data', (chunk) => { // ..  });
  req.on('end', () => { // ..  });
});

Если задан параметр options.waitForTrailers, событие 'wantTrailers' возникает сразу после постановки в очередь последнего фрагмента отправляемых данных полезной нагрузки. После этого можно вызвать метод http2stream.sendTrailers(), чтобы отправить конечные заголовки узлу-получателю.

Если задан options.waitForTrailers, Http2Stream не будет автоматически закрыт после передачи последнего кадра DATA. Чтобы закрыть Http2Stream, пользовательский код должен вызвать либо http2stream.sendTrailers(), либо http2stream.close().

Если задан options.signal вместе с AbortSignal, а затем вызывается abort для соответствующего AbortController, запрос вызовет событие 'error' с ошибкой AbortError.

Псевдозаголовки :method и :path не указаны в headers; по умолчанию они соответственно равны:

  • :method = 'GET'
  • :path = /
addListener(
event: "altsvc",
listener: (
alt: string,
origin: string,
stream: number,
) => void
,
): this
addListener(
event: "origin",
listener: (origins: string[]) => void,
): this
addListener(
event: "connect",
listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
addListener(
event: "stream",
listener: (
stream: ClientHttp2Stream,
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(
event: "altsvc",
alt: string,
origin: string,
stream: number,
): boolean
emit(
event: "origin",
origins: readonly string[],
): boolean
emit(
event: "connect",
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
): boolean
emit(
event: "stream",
stream: ClientHttp2Stream,
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "altsvc",
listener: (
alt: string,
origin: string,
stream: number,
) => void
,
): this
on(
event: "origin",
listener: (origins: string[]) => void,
): this
on(
event: "connect",
listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
on(
event: "stream",
listener: (
stream: ClientHttp2Stream,
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "altsvc",
listener: (
alt: string,
origin: string,
stream: number,
) => void
,
): this
once(
event: "origin",
listener: (origins: string[]) => void,
): this
once(
event: "connect",
listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
once(
event: "stream",
listener: (
stream: ClientHttp2Stream,
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "altsvc",
listener: (
alt: string,
origin: string,
stream: number,
) => void
,
): this
prependListener(
event: "origin",
listener: (origins: string[]) => void,
): this
prependListener(
event: "connect",
listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
prependListener(
event: "stream",
listener: (
stream: ClientHttp2Stream,
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "altsvc",
listener: (
alt: string,
origin: string,
stream: number,
) => void
,
): this
prependOnceListener(
event: "origin",
listener: (origins: string[]) => void,
): this
prependOnceListener(
event: "connect",
listener: (
session: ClientHttp2Session,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
prependOnceListener(
event: "stream",
listener: (
stream: ClientHttp2Stream,
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this

интерфейс ClientHttp2Stream

наследует Http2Stream

Использование в Deno

import { type ClientHttp2Stream } from "node:http2";
Совместимость с Deno

Все методы являются неработающими заглушками.

Методы

addListener(
event: "continue",
listener: () => { },
): this
addListener(
event: "headers",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
addListener(
event: "push",
listener: (
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
addListener(
event: "response",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(event: "continue"): boolean
emit(
event: "headers",
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
): boolean
emit(
event: "push",
headers: IncomingHttpHeaders,
flags: number,
): boolean
emit(
event: "response",
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "continue",
listener: () => { },
): this
on(
event: "headers",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
on(
event: "push",
listener: (
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
on(
event: "response",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "continue",
listener: () => { },
): this
once(
event: "headers",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
once(
event: "push",
listener: (
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
once(
event: "response",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "continue",
listener: () => { },
): this
prependListener(
event: "headers",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
prependListener(
event: "push",
listener: (
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependListener(
event: "response",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "continue",
listener: () => { },
): this
prependOnceListener(
event: "headers",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
prependOnceListener(
event: "push",
listener: (
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependOnceListener(
event: "response",
listener: (
headers: IncomingHttpHeaders & IncomingHttpStatusHeader,
flags: number,
) => void
,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this

интерфейс ClientSessionOptions

расширяет SessionOptions

Использование в Deno

import { type ClientSessionOptions } from "node:http2";

Свойства

maxReservedRemoteStreams: number | undefined
необязательный
createConnection: ((
authority: url.URL,
option: SessionOptions,
) => stream.Duplex) | undefined
необязательный
protocol:
"http:"
| "https:"
| undefined
необязательный

интерфейс ClientSessionRequestOptions

Использование в Deno

import { type ClientSessionRequestOptions } from "node:http2";

Свойства

endStream: boolean | undefined
необязательный
exclusive: boolean | undefined
необязательный
parent: number | undefined
необязательный
weight: number | undefined
необязательный
waitForTrailers: boolean | undefined
необязательный
signal: AbortSignal | undefined
необязательный

интерфейс Http2SecureServer

расширяет [tls.Server]HTTP2ServerCommon

Использование в Deno

import { type Http2SecureServer } from "node:http2";

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Методы

addListener(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
addListener(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
addListener(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
addListener(
event: "sessionError",
listener: (err: Error) => void,
): this
addListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
addListener(
event: "timeout",
listener: () => void,
): this
addListener(
event: "unknownProtocol",
listener: (socket: tls.TLSSocket) => void,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(
event: "checkContinue",
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
): boolean
emit(
event: "request",
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
): boolean
emit(
event: "session",
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
): boolean
emit(
event: "sessionError",
err: Error,
): boolean
emit(
event: "stream",
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
): boolean
emit(event: "timeout"): boolean
emit(
event: "unknownProtocol",
socket: tls.TLSSocket,
): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
on(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
on(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
on(
event: "sessionError",
listener: (err: Error) => void,
): this
on(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
on(
event: "timeout",
listener: () => void,
): this
on(
event: "unknownProtocol",
listener: (socket: tls.TLSSocket) => void,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
once(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
once(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
once(
event: "sessionError",
listener: (err: Error) => void,
): this
once(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
once(
event: "timeout",
listener: () => void,
): this
once(
event: "unknownProtocol",
listener: (socket: tls.TLSSocket) => void,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependListener(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependListener(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
prependListener(
event: "sessionError",
listener: (err: Error) => void,
): this
prependListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependListener(
event: "timeout",
listener: () => void,
): this
prependListener(
event: "unknownProtocol",
listener: (socket: tls.TLSSocket) => void,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependOnceListener(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependOnceListener(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
prependOnceListener(
event: "sessionError",
listener: (err: Error) => void,
): this
prependOnceListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependOnceListener(
event: "timeout",
listener: () => void,
): this
prependOnceListener(
event: "unknownProtocol",
listener: (socket: tls.TLSSocket) => void,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this

интерфейс Http2Server

расширяет [net.Server]HTTP2ServerCommon

Использование в Deno

import { type Http2Server } from "node:http2";

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Методы

addListener(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
addListener(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
addListener(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
addListener(
event: "sessionError",
listener: (err: Error) => void,
): this
addListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
addListener(
event: "timeout",
listener: () => void,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(
event: "checkContinue",
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
): boolean
emit(
event: "request",
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
): boolean
emit(
event: "session",
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
): boolean
emit(
event: "sessionError",
err: Error,
): boolean
emit(
event: "stream",
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
): boolean
emit(event: "timeout"): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
on(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
on(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
on(
event: "sessionError",
listener: (err: Error) => void,
): this
on(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
on(
event: "timeout",
listener: () => void,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
once(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
once(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
once(
event: "sessionError",
listener: (err: Error) => void,
): this
once(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
once(
event: "timeout",
listener: () => void,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependListener(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependListener(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
prependListener(
event: "sessionError",
listener: (err: Error) => void,
): this
prependListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependListener(
event: "timeout",
listener: () => void,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "checkContinue",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependOnceListener(
event: "request",
listener: (
request: InstanceType<Http2Request>,
response: InstanceType<Http2Response>,
) => void
,
): this
prependOnceListener(
event: "session",
listener: (session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>) => void,
): this
prependOnceListener(
event: "sessionError",
listener: (err: Error) => void,
): this
prependOnceListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependOnceListener(
event: "timeout",
listener: () => void,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this

интерфейс HTTP2ServerCommon

Использование в Deno

import { type HTTP2ServerCommon } from "node:http2";

Методы

setTimeout(
msec?: number,
callback?: () => void,
): this
updateSettings(settings: Settings): void

Для недопустимых значений параметров выбрасывается ошибка ERR_HTTP2_INVALID_SETTING_VALUE. Для недопустимого аргумента settings выбрасывается ошибка ERR_INVALID_ARG_TYPE.


интерфейс Http2Session

наследует EventEmitter

Использование в Deno

import { type Http2Session } from "node:http2";
Совместимость с Deno

Следующие методы являются неработающими заглушками:

  • setLocalWindowSize
  • ping
  • localSettings
  • remoteSettings
  • settings
  • ref
  • unref

Свойства

alpnProtocol: string | undefined
только для чтения
необязательный

Значение будет undefined, если Http2Session ещё не подключён к сокету, h2c, если Http2Session не подключён к TLSSocket, или будет возвращено значение собственного свойства alpnProtocol подключённого TLSSocket.

closed: boolean
только для чтения

Будет true, если этот экземпляр Http2Session закрыт, в противном случае — false.

connecting: boolean
только для чтения

Будет true, если этот экземпляр Http2Session всё ещё устанавливает соединение; значение будет установлено в false перед генерацией события connect и/или вызовом обратного вызова http2.connect.

destroyed: boolean
только для чтения

Будет true, если этот экземпляр Http2Session уничтожен и больше не должен использоваться, в противном случае — false.

encrypted: boolean | undefined
только для чтения
необязательный

Значение равно undefined, если сокет сеанса Http2Session ещё не подключён, true, если Http2Session подключён с помощью TLSSocket, и false, если Http2Session подключён к сокету или потоку любого другого типа.

localSettings: Settings
только для чтения

Объект без прототипа, описывающий текущие локальные настройки этого Http2Session. Локальные настройки относятся к этому экземпляру Http2Session.

originSet: string[] | undefined
только для чтения
необязательный

Если Http2Session подключён к TLSSocket, свойство originSet вернёт Array источников, для которых Http2Session можно считать авторитетным.

Свойство originSet доступно только при использовании защищённого соединения TLS.

pendingSettingsAck: boolean
только для чтения

Указывает, ожидает ли Http2Session в данный момент подтверждения отправленного кадра SETTINGS. Будет true после вызова метода http2session.settings(). Будет false после подтверждения всех отправленных кадров SETTINGS.

remoteSettings: Settings
только для чтения

Объект без прототипа, описывающий текущие удалённые настройки этогоHttp2Session. Удалённые настройки задаются подключённым узлом HTTP/2.

socket: net.Socket | tls.TLSSocket
только для чтения

Возвращает объект Proxy, который действует как net.Socket (или tls.TLSSocket), но ограничивает доступные методы теми, которые безопасно использовать с HTTP/2.

Вызов destroy, emit, end, pause, read, resume и write приведёт к ошибке с кодом ERR_HTTP2_NO_SOCKET_MANIPULATION. Дополнительные сведения см. в Http2Session and Sockets.

Метод setTimeout будет вызван для этого Http2Session.

Все остальные взаимодействия будут напрямую перенаправлены сокету.

state: SessionState
только для чтения

Предоставляет различные сведения о текущем состоянииHttp2Session.

Объект, описывающий текущее состояние этого Http2Session.

type: number
только для чтения

Значение http2session.type будет равно http2.constants.NGHTTP2_SESSION_SERVER, если этот экземпляр Http2Session является сервером, и http2.constants.NGHTTP2_SESSION_CLIENT, если экземпляр является клиентом.

Методы

close(callback?: () => void): void

Корректно закрывает Http2Session, позволяя всем существующим потокам завершиться самостоятельно и предотвращая создание новых экземпляров Http2Stream. После закрытия может быть вызван http2session.destroy(), если открытых экземпляров Http2Stream не осталось.

Если указана функция callback, она регистрируется как обработчик события 'close'.

destroy(
error?: Error,
code?: number,
): void

Немедленно завершает Http2Session и связанный net.Socket или tls.TLSSocket.

После уничтожения Http2Session сгенерирует событие 'close'. Если error не равен undefined, непосредственно перед событием 'close' будет сгенерировано событие 'error'.

Все оставшиеся открытые объекты Http2Streams, связанные с Http2Session, также будут уничтожены.

goaway(
code?: number,
lastStreamID?: number,
opaqueData?: ArrayBufferView,
): void

Отправляет подключённому узлу кадр GOAWAY, не завершая работуHttp2Session.

ping(callback: (
err: Error | null,
duration: number,
payload: Buffer,
) => void
): boolean

Отправляет кадр PING подключённому узлу HTTP/2. Необходимо предоставить функцию callback. Метод вернёт true, если PING был отправлен, и false в противном случае.

Максимальное количество ожидающих подтверждения проверочных сигналов определяется параметром конфигурации maxOutstandingPings. По умолчанию максимум равен 10.

Если параметр payload указан, он должен быть Buffer, TypedArray или DataView, содержащим 8 байт данных, которые будут переданы вместе с PING и возвращены вместе с подтверждением проверочного сигнала.

Функция обратного вызова будет вызвана с тремя аргументами: аргументом ошибки, равным null, если PING был успешно подтверждён; аргументом duration, содержащим количество миллисекунд, прошедших с момента отправки проверочного сигнала до получения подтверждения; и Buffer, содержащим 8-байтовую полезную нагрузку PING.

session.ping(Buffer.from('abcdefgh'), (err, duration, payload) => {
  if (!err) {
    console.log(`Ping acknowledged in ${duration} milliseconds`);
    console.log(`With payload '${payload.toString()}'`);
  }
});

Если аргумент payload не указан, полезной нагрузкой по умолчанию будет 64-битная временная метка (в порядке байтов от младшего к старшему), обозначающая начало интервала PING.

ping(
payload: ArrayBufferView,
callback: (
err: Error | null,
duration: number,
payload: Buffer,
) => void
,
): boolean
ref(): void

Вызывает ref() для базового net.Socket этого экземпляра Http2Session.

setLocalWindowSize(windowSize: number): void

Задаёт размер окна локальной конечной точки. windowSize — это общий размер окна, который нужно установить, а не приращение.

import http2 from 'node:http2';

const server = http2.createServer();
const expectedWindowSize = 2 ** 20;
server.on('connect', (session) => {

  // Set local window size to be 2 ** 20
  session.setLocalWindowSize(expectedWindowSize);
});
setTimeout(
msecs: number,
callback?: () => void,
): void

Используется для задания функции обратного вызова, которая вызывается при отсутствии активности в Http2Session в течение msecs миллисекунд. Указанный callback регистрируется как обработчик события 'timeout'.

settings(
settings: Settings,
callback?: (
err: Error | null,
settings: Settings,
duration: number,
) => void
,
): void

Обновляет текущие локальные настройки этого Http2Session и отправляет подключённому узлу HTTP/2 новый кадр SETTINGS.

После вызова свойство http2session.pendingSettingsAck будет иметь значение true, пока сеанс ожидает подтверждения новых настроек от удалённого узла.

Новые настройки вступят в силу только после получения подтверждения SETTINGS и генерации события 'localSettings'. Можно отправить несколько кадров SETTINGS, пока подтверждение ещё ожидается.

unref(): void

Вызывает unref() для базового net.Socket этого экземпляра Http2Session.

addListener(
event: "close",
listener: () => void,
): this
addListener(
event: "error",
listener: (err: Error) => void,
): this
addListener(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
streamID: number,
) => void
,
): this
addListener(
event: "goaway",
listener: (
errorCode: number,
lastStreamID: number,
opaqueData?: Buffer,
) => void
,
): this
addListener(
event: "localSettings",
listener: (settings: Settings) => void,
): this
addListener(
event: "ping",
listener: () => void,
): this
addListener(
event: "remoteSettings",
listener: (settings: Settings) => void,
): this
addListener(
event: "timeout",
listener: () => void,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(event: "close"): boolean
emit(
event: "error",
err: Error,
): boolean
emit(
event: "frameError",
frameType: number,
errorCode: number,
streamID: number,
): boolean
emit(
event: "goaway",
errorCode: number,
lastStreamID: number,
opaqueData?: Buffer,
): boolean
emit(
event: "localSettings",
settings: Settings,
): boolean
emit(event: "ping"): boolean
emit(
event: "remoteSettings",
settings: Settings,
): boolean
emit(event: "timeout"): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "close",
listener: () => void,
): this
on(
event: "error",
listener: (err: Error) => void,
): this
on(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
streamID: number,
) => void
,
): this
on(
event: "goaway",
listener: (
errorCode: number,
lastStreamID: number,
opaqueData?: Buffer,
) => void
,
): this
on(
event: "localSettings",
listener: (settings: Settings) => void,
): this
on(
event: "ping",
listener: () => void,
): this
on(
event: "remoteSettings",
listener: (settings: Settings) => void,
): this
on(
event: "timeout",
listener: () => void,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "close",
listener: () => void,
): this
once(
event: "error",
listener: (err: Error) => void,
): this
once(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
streamID: number,
) => void
,
): this
once(
event: "goaway",
listener: (
errorCode: number,
lastStreamID: number,
opaqueData?: Buffer,
) => void
,
): this
once(
event: "localSettings",
listener: (settings: Settings) => void,
): this
once(
event: "ping",
listener: () => void,
): this
once(
event: "remoteSettings",
listener: (settings: Settings) => void,
): this
once(
event: "timeout",
listener: () => void,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "close",
listener: () => void,
): this
prependListener(
event: "error",
listener: (err: Error) => void,
): this
prependListener(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
streamID: number,
) => void
,
): this
prependListener(
event: "goaway",
listener: (
errorCode: number,
lastStreamID: number,
opaqueData?: Buffer,
) => void
,
): this
prependListener(
event: "localSettings",
listener: (settings: Settings) => void,
): this
prependListener(
event: "ping",
listener: () => void,
): this
prependListener(
event: "remoteSettings",
listener: (settings: Settings) => void,
): this
prependListener(
event: "timeout",
listener: () => void,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "close",
listener: () => void,
): this
prependOnceListener(
event: "error",
listener: (err: Error) => void,
): this
prependOnceListener(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
streamID: number,
) => void
,
): this
prependOnceListener(
event: "goaway",
listener: (
errorCode: number,
lastStreamID: number,
opaqueData?: Buffer,
) => void
,
): this
prependOnceListener(
event: "localSettings",
listener: (settings: Settings) => void,
): this
prependOnceListener(
event: "ping",
listener: () => void,
): this
prependOnceListener(
event: "remoteSettings",
listener: (settings: Settings) => void,
): this
prependOnceListener(
event: "timeout",
listener: () => void,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this

интерфейс Http2Stream

extends [stream.Duplex]

Использование в Deno

import { type Http2Stream } from "node:http2";
Совместимость с Deno

Следующие методы являются неработающими заглушками:

  • aborted
  • bufferSize
  • endAfterHeaders
  • id
  • pending
  • priority
  • rstCode
  • sentHeaders
  • sentInfoHeaders
  • sentTrailers
  • state

Свойства

aborted: boolean
только для чтения

Устанавливается в true, если экземпляр Http2Stream был аварийно прерван. После установки этого значения будет сгенерировано событие 'aborted'.

bufferSize: number
только для чтения

Это свойство показывает количество символов, которые в данный момент буферизованы для записи. Подробности см. в net.Socket.bufferSize.

closed: boolean
только для чтения

Устанавливается в true, если экземпляр Http2Stream был закрыт.

destroyed: boolean
только для чтения

Устанавливается в true, если экземпляр Http2Stream был уничтожен и больше не пригоден к использованию.

endAfterHeaders: boolean
только для чтения

Устанавливается в true, если флаг END_STREAM был установлен в полученном кадре HEADERS запроса или ответа, указывая, что больше не следует получать данные и читаемая сторона Http2Stream будет закрыта.

id: number | undefined
только для чтения
необязательное

Числовой идентификатор потока этого экземпляра Http2Stream. Устанавливается в undefined, если идентификатор потока еще не назначен.

pending: boolean
только для чтения

Устанавливается в true, если экземпляру Http2Stream еще не назначен числовой идентификатор потока.

rstCode: number
только для чтения

Устанавливается в значение RST_STREAM error code, сообщенное при уничтожении Http2Stream после получения кадра RST_STREAM от подключенного узла, вызова http2stream.close() или http2stream.destroy(). Будет равно undefined, если Http2Stream не был закрыт.

sentHeaders: OutgoingHttpHeaders
только для чтения

Объект с исходящими заголовками, отправленными для этого Http2Stream.

sentInfoHeaders: OutgoingHttpHeaders[] | undefined
только для чтения
необязательное

Массив объектов с исходящими информационными (дополнительными) заголовками, отправленными для этого Http2Stream.

sentTrailers: OutgoingHttpHeaders | undefined
только для чтения
необязательное

Объект с исходящими завершающими заголовками, отправленными для этого HttpStream.

session: Http2Session | undefined
только для чтения

Ссылка на экземпляр Http2Session, которому принадлежит этот Http2Stream. Значение будет равно undefined после уничтожения экземпляра Http2Stream.

state: StreamState
только для чтения

Предоставляет различные сведения о текущем состоянии Http2Stream.

Текущее состояние этого Http2Stream.

Методы

close(
code?: number,
callback?: () => void,
): void

Закрывает экземпляр Http2Stream, отправляя кадр RST_STREAM подключенному узлу HTTP/2.

priority(options: StreamPriorityOptions): void

Обновляет приоритет этого экземпляра Http2Stream.

setTimeout(
msecs: number,
callback?: () => void,
): void
import http2 from 'node:http2';
const client = http2.connect('http://example.org:8000');
const { NGHTTP2_CANCEL } = http2.constants;
const req = client.request({ ':path': '/' });

// Cancel the stream if there's no activity after 5 seconds
req.setTimeout(5000, () => req.close(NGHTTP2_CANCEL));
sendTrailers(headers: OutgoingHttpHeaders): void

Отправляет завершающий кадр HEADERS подключенному узлу HTTP/2. Этот метод немедленно закрывает Http2Stream и должен вызываться только после генерации события 'wantTrailers'. При отправке запроса или ответа необходимо задать параметр options.waitForTrailers, чтобы оставить Http2Stream открытым после последнего кадра DATA и иметь возможность отправить завершающие заголовки.

import http2 from 'node:http2';
const server = http2.createServer();
server.on('stream', (stream) => {
  stream.respond(undefined, { waitForTrailers: true });
  stream.on('wantTrailers', () => {
    stream.sendTrailers({ xyz: 'abc' });
  });
  stream.end('Hello World');
});

Спецификация HTTP/1 запрещает включать в завершающие заголовки псевдозаголовки HTTP/2 (например, ':method', ':path' и т. д.).

addListener(
event: "aborted",
listener: () => void,
): this
addListener(
event: "close",
listener: () => void,
): this
addListener(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
addListener(
event: "drain",
listener: () => void,
): this
addListener(
event: "end",
listener: () => void,
): this
addListener(
event: "error",
listener: (err: Error) => void,
): this
addListener(
event: "finish",
listener: () => void,
): this
addListener(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
) => void
,
): this
addListener(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
addListener(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
addListener(
event: "streamClosed",
listener: (code: number) => void,
): this
addListener(
event: "timeout",
listener: () => void,
): this
addListener(
event: "trailers",
listener: (
trailers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
addListener(
event: "wantTrailers",
listener: () => void,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(event: "aborted"): boolean
emit(event: "close"): boolean
emit(
event: "data",
chunk: Buffer | string,
): boolean
emit(event: "drain"): boolean
emit(event: "end"): boolean
emit(
event: "error",
err: Error,
): boolean
emit(event: "finish"): boolean
emit(
event: "frameError",
frameType: number,
errorCode: number,
): boolean
emit(
event: "pipe",
src: stream.Readable,
): boolean
emit(
event: "unpipe",
src: stream.Readable,
): boolean
emit(
event: "streamClosed",
code: number,
): boolean
emit(event: "timeout"): boolean
emit(
event: "trailers",
trailers: IncomingHttpHeaders,
flags: number,
): boolean
emit(event: "wantTrailers"): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "aborted",
listener: () => void,
): this
on(
event: "close",
listener: () => void,
): this
on(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
on(
event: "drain",
listener: () => void,
): this
on(
event: "end",
listener: () => void,
): this
on(
event: "error",
listener: (err: Error) => void,
): this
on(
event: "finish",
listener: () => void,
): this
on(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
) => void
,
): this
on(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
on(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
on(
event: "streamClosed",
listener: (code: number) => void,
): this
on(
event: "timeout",
listener: () => void,
): this
on(
event: "trailers",
listener: (
trailers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
on(
event: "wantTrailers",
listener: () => void,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "aborted",
listener: () => void,
): this
once(
event: "close",
listener: () => void,
): this
once(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
once(
event: "drain",
listener: () => void,
): this
once(
event: "end",
listener: () => void,
): this
once(
event: "error",
listener: (err: Error) => void,
): this
once(
event: "finish",
listener: () => void,
): this
once(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
) => void
,
): this
once(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
once(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
once(
event: "streamClosed",
listener: (code: number) => void,
): this
once(
event: "timeout",
listener: () => void,
): this
once(
event: "trailers",
listener: (
trailers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
once(
event: "wantTrailers",
listener: () => void,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "aborted",
listener: () => void,
): this
prependListener(
event: "close",
listener: () => void,
): this
prependListener(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
prependListener(
event: "drain",
listener: () => void,
): this
prependListener(
event: "end",
listener: () => void,
): this
prependListener(
event: "error",
listener: (err: Error) => void,
): this
prependListener(
event: "finish",
listener: () => void,
): this
prependListener(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
) => void
,
): this
prependListener(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
prependListener(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
prependListener(
event: "streamClosed",
listener: (code: number) => void,
): this
prependListener(
event: "timeout",
listener: () => void,
): this
prependListener(
event: "trailers",
listener: (
trailers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependListener(
event: "wantTrailers",
listener: () => void,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "aborted",
listener: () => void,
): this
prependOnceListener(
event: "close",
listener: () => void,
): this
prependOnceListener(
event: "data",
listener: (chunk: Buffer | string) => void,
): this
prependOnceListener(
event: "drain",
listener: () => void,
): this
prependOnceListener(
event: "end",
listener: () => void,
): this
prependOnceListener(
event: "error",
listener: (err: Error) => void,
): this
prependOnceListener(
event: "finish",
listener: () => void,
): this
prependOnceListener(
event: "frameError",
listener: (
frameType: number,
errorCode: number,
) => void
,
): this
prependOnceListener(
event: "pipe",
listener: (src: stream.Readable) => void,
): this
prependOnceListener(
event: "unpipe",
listener: (src: stream.Readable) => void,
): this
prependOnceListener(
event: "streamClosed",
listener: (code: number) => void,
): this
prependOnceListener(
event: "timeout",
listener: () => void,
): this
prependOnceListener(
event: "trailers",
listener: (
trailers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependOnceListener(
event: "wantTrailers",
listener: () => void,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this

интерфейс IncomingHttpHeaders

extends Http1IncomingHttpHeaders

Использование в Deno

import { type IncomingHttpHeaders } from "node:http2";

Свойства

:path: string | undefined
необязательное
:method: string | undefined
необязательное
:authority: string | undefined
необязательное
:scheme: string | undefined
необязательное

интерфейс IncomingHttpStatusHeader

Использование в Deno

import { type IncomingHttpStatusHeader } from "node:http2";

Свойства

:status: number | undefined
необязательное

интерфейс OutgoingHttpHeaders

extends [NodeJS.Dict]<OutgoingHttpHeader>

Использование в Deno

import { type OutgoingHttpHeaders } from "node:http2";

Свойства

accept:
string
| string[]
| undefined
необязательное
accept-charset:
string
| string[]
| undefined
необязательное
accept-encoding:
string
| string[]
| undefined
необязательное
accept-language:
string
| string[]
| undefined
необязательное
accept-ranges: string | undefined
необязательное
access-control-allow-credentials: string | undefined
необязательное
access-control-allow-headers: string | undefined
необязательное
access-control-allow-methods: string | undefined
необязательное
access-control-allow-origin: string | undefined
необязательное
access-control-expose-headers: string | undefined
необязательное
access-control-max-age: string | undefined
необязательное
access-control-request-headers: string | undefined
необязательное
access-control-request-method: string | undefined
необязательное
age: string | undefined
необязательное
allow: string | undefined
необязательное
authorization: string | undefined
необязательное
cache-control: string | undefined
необязательное
cdn-cache-control: string | undefined
необязательное
connection:
string
| string[]
| undefined
необязательное
content-disposition: string | undefined
необязательное
content-encoding: string | undefined
необязательное
content-language: string | undefined
необязательное
content-length:
string
| number
| undefined
необязательное
content-location: string | undefined
необязательное
content-range: string | undefined
необязательное
content-security-policy: string | undefined
необязательное
content-security-policy-report-only: string | undefined
необязательное
content-type: string | undefined
необязательное
cookie:
string
| string[]
| undefined
необязательное
dav:
string
| string[]
| undefined
необязательное
dnt: string | undefined
необязательное
date: string | undefined
необязательное
etag: string | undefined
необязательное
expect: string | undefined
необязательное
expires: string | undefined
необязательное
forwarded: string | undefined
необязательное
from: string | undefined
необязательное
host: string | undefined
необязательное
if-match: string | undefined
необязательное
if-modified-since: string | undefined
необязательное
if-none-match: string | undefined
необязательное
if-range: string | undefined
необязательное
if-unmodified-since: string | undefined
необязательное
last-modified: string | undefined
необязательное
link:
string
| string[]
| undefined
необязательное
location: string | undefined
необязательное
max-forwards: string | undefined
необязательное
origin: string | undefined
необязательное
pragma:
string
| string[]
| undefined
необязательное
proxy-authenticate:
string
| string[]
| undefined
необязательное
proxy-authorization: string | undefined
необязательное
public-key-pins: string | undefined
необязательное
public-key-pins-report-only: string | undefined
необязательное
range: string | undefined
необязательное
referer: string | undefined
необязательное
referrer-policy: string | undefined
необязательное
refresh: string | undefined
необязательное
retry-after: string | undefined
необязательное
sec-websocket-accept: string | undefined
необязательное
sec-websocket-extensions:
string
| string[]
| undefined
необязательное
sec-websocket-key: string | undefined
необязательное
sec-websocket-protocol:
string
| string[]
| undefined
необязательное
sec-websocket-version: string | undefined
необязательное
server: string | undefined
необязательное
set-cookie:
string
| string[]
| undefined
необязательное
strict-transport-security: string | undefined
необязательное
te: string | undefined
необязательное
trailer: string | undefined
необязательное
transfer-encoding: string | undefined
необязательное
user-agent: string | undefined
необязательное
upgrade: string | undefined
необязательное
upgrade-insecure-requests: string | undefined
необязательное
vary: string | undefined
необязательное
via:
string
| string[]
| undefined
необязательное
warning: string | undefined
необязательное
www-authenticate:
string
| string[]
| undefined
необязательное
x-content-type-options: string | undefined
необязательное
x-dns-prefetch-control: string | undefined
необязательное
x-frame-options: string | undefined
необязательное
x-xss-protection: string | undefined
необязательное

интерфейс SecureClientSessionOptions

extends ClientSessionOptions[tls.ConnectionOptions]

Использование в Deno

import { type SecureClientSessionOptions } from "node:http2";

интерфейс SecureServerOptions

extends SecureServerSessionOptions<Http1Request, Http1Response, Http2Request, Http2Response>

Использование в Deno

import { type SecureServerOptions } from "node:http2";

Параметры типов

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Свойства

allowHTTP1: boolean | undefined
необязательное
origins: string[] | undefined
необязательное

интерфейс SecureServerSessionOptions

extends ServerSessionOptions<Http1Request, Http1Response, Http2Request, Http2Response>[tls.TlsOptions]

Использование в Deno

import { type SecureServerSessionOptions } from "node:http2";

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

интерфейс ServerHttp2Session

extends Http2Session

Использование в Deno

import { type ServerHttp2Session } from "node:http2";
Совместимость с Deno

Все методы являются неработающими заглушками.

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Свойства

server: Http2Server<Http1Request, Http1Response, Http2Request, Http2Response> | Http2SecureServer<Http1Request, Http1Response, Http2Request, Http2Response>
только для чтения

Методы

altsvc(
alt: string,
originOrStream:
number
| string
| url.URL
| AlternativeServiceOptions
,
): void

Отправляет подключенному клиенту кадр ALTSVC (как определено в RFC 7838).

import http2 from 'node:http2';

const server = http2.createServer();
server.on('session', (session) => {
  // Set altsvc for origin https://example.org:80
  session.altsvc('h2=":8000"', 'https://example.org:80');
});

server.on('stream', (stream) => {
  // Set altsvc for a specific stream
  stream.session.altsvc('h2=":8000"', stream.id);
});

Отправка кадра ALTSVC с определенным идентификатором потока указывает, что альтернативная служба связана с источником указанного Http2Stream.

Значение alt и строка источника должны содержать только байты ASCII и строго интерпретируются как последовательность байтов ASCII. Специальное значение 'clear'можно передать, чтобы очистить любую ранее заданную альтернативную службу для указанного домена.

Если для аргумента originOrStream передана строка, она будет разобрана как URL, и источник будет получен из нее. Например, источником для HTTP URL 'https://example.org/foo/bar' является строка ASCII'https://example.org'. Будет выброшена ошибка, если указанную строку невозможно разобрать как URL или если не удается получить допустимый источник.

В качестве originOrStream можно передать объект URL или любой объект со свойством origin; в этом случае будет использовано значение свойства origin. Значение свойства origin должно быть правильно сериализованным источником ASCII.

origin(...origins: Array<
string
| url.URL
| { origin: string; }
>
): void

Отправляет подключенному клиенту кадр ORIGIN (как определено в RFC 8336), чтобы сообщить набор источников, для которых сервер может предоставлять авторитетные ответы.

import http2 from 'node:http2';
const options = getSecureOptionsSomehow();
const server = http2.createSecureServer(options);
server.on('stream', (stream) => {
  stream.respond();
  stream.end('ok');
});
server.on('session', (session) => {
  session.origin('https://example.com', 'https://example.org');
});

Если в качестве origin передана строка, она будет разобрана как URL, и источник будет получен из нее. Например, источником для HTTP URL 'https://example.org/foo/bar' является строка ASCII 'https://example.org'. Будет выброшена ошибка, если указанную строку невозможно разобрать как URL или если не удается получить допустимый источник.

В качестве origin можно передать объект URL или любой объект со свойством origin; в этом случае будет использовано значение свойства origin. Значение свойства origin должно быть правильно сериализованным источником ASCII.

Кроме того, параметр origins можно использовать при создании нового HTTP/2-сервера с помощью метода http2.createSecureServer():

import http2 from 'node:http2';
const options = getSecureOptionsSomehow();
options.origins = ['https://example.com', 'https://example.org'];
const server = http2.createSecureServer(options);
server.on('stream', (stream) => {
  stream.respond();
  stream.end('ok');
});
addListener(
event: "connect",
listener: (
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
addListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
addListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
emit(
event: "connect",
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
socket: net.Socket | tls.TLSSocket,
): boolean
emit(
event: "stream",
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
): boolean
emit(
event: string | symbol,
...args: any[],
): boolean
on(
event: "connect",
listener: (
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
on(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
on(
event: string | symbol,
listener: (...args: any[]) => void,
): this
once(
event: "connect",
listener: (
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
once(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
once(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependListener(
event: "connect",
listener: (
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
prependListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this
prependOnceListener(
event: "connect",
listener: (
session: ServerHttp2Session<Http1Request, Http1Response, Http2Request, Http2Response>,
socket: net.Socket | tls.TLSSocket,
) => void
,
): this
prependOnceListener(
event: "stream",
listener: (
stream: ServerHttp2Stream,
headers: IncomingHttpHeaders,
flags: number,
) => void
,
): this
prependOnceListener(
event: string | symbol,
listener: (...args: any[]) => void,
): this

интерфейс ServerHttp2Stream

extends Http2Stream

Использование в Deno

import { type ServerHttp2Stream } from "node:http2";

Свойства

headersSent: boolean
только для чтения

True, если заголовки были отправлены, иначе false (только для чтения).

pushAllowed: boolean
только для чтения

Свойство только для чтения, соответствующее флагу SETTINGS_ENABLE_PUSH последнего кадра SETTINGS, полученного от удаленного клиента. Значение будет true, если удаленный узел принимает потоки push, и false в противном случае. Настройки одинаковы для каждого Http2Stream в одном и том же Http2Session.

Методы

additionalHeaders(headers: OutgoingHttpHeaders): void

Отправляет подключенному узлу HTTP/2 дополнительный информационный кадр HEADERS.

pushStream(
headers: OutgoingHttpHeaders,
callback?: (
err: Error | null,
pushStream: ServerHttp2Stream,
headers: OutgoingHttpHeaders,
) => void
,
): void

Инициирует поток push. Функция обратного вызова вызывается с новым экземпляром Http2Stream, созданным для потока push и переданным в качестве второго аргумента, либо с Error, переданным в качестве первого аргумента.

import http2 from 'node:http2';
const server = http2.createServer();
server.on('stream', (stream) => {
  stream.respond({ ':status': 200 });
  stream.pushStream({ ':path': '/' }, (err, pushStream, headers) => {
    if (err) throw err;
    pushStream.respond({ ':status': 200 });
    pushStream.end('some pushed data');
  });
  stream.end('some data');
});

Устанавливать вес потока push в кадре HEADERS нельзя. Передайте значение weight в http2stream.priority с параметром silent, установленным в true, чтобы включить балансировку пропускной способности на стороне сервера между параллельными потоками.

Вызов http2stream.pushStream() изнутри потока push запрещен и приведет к ошибке.

pushStream(
headers: OutgoingHttpHeaders,
options?: StreamPriorityOptions,
callback?: (
err: Error | null,
pushStream: ServerHttp2Stream,
headers: OutgoingHttpHeaders,
) => void
,
): void
respond(
headers?: OutgoingHttpHeaders,
options?: ServerStreamResponseOptions,
): void
import http2 from 'node:http2';
const server = http2.createServer();
server.on('stream', (stream) => {
  stream.respond({ ':status': 200 });
  stream.end('some data');
});

Инициирует ответ. Если задан параметр options.waitForTrailers, событие 'wantTrailers' будет создано сразу после постановки в очередь последнего фрагмента отправляемых данных полезной нагрузки. Затем для отправки завершающих полей заголовка узлу можно использовать метод http2stream.sendTrailers().

Если задан параметр options.waitForTrailers, Http2Stream не будет автоматически закрыт после передачи последнего кадра DATA. Пользовательский код должен вызвать http2stream.sendTrailers() или http2stream.close(), чтобы закрыть Http2Stream.

import http2 from 'node:http2';
const server = http2.createServer();
server.on('stream', (stream) => {
  stream.respond({ ':status': 200 }, { waitForTrailers: true });
  stream.on('wantTrailers', () => {
    stream.sendTrailers({ ABC: 'some value to send' });
  });
  stream.end('some data');
});
respondWithFD(
fd: number | fs.promises.FileHandle,
headers?: OutgoingHttpHeaders,
options?: ServerStreamFileResponseOptions,
): void

Инициирует ответ, данные для которого считываются из указанного дескриптора файла. Проверка указанного дескриптора файла не выполняется. Если при попытке считывания данных с помощью дескриптора файла возникает ошибка, Http2Stream будет закрыт с помощью кадра RST_STREAM и стандартного кода INTERNAL_ERROR.

При использовании интерфейс Duplex объекта Http2Stream будет закрыт автоматически.

import http2 from 'node:http2';
import fs from 'node:fs';

const server = http2.createServer();
server.on('stream', (stream) => {
  const fd = fs.openSync('/some/file', 'r');

  const stat = fs.fstatSync(fd);
  const headers = {
    'content-length': stat.size,
    'last-modified': stat.mtime.toUTCString(),
    'content-type': 'text/plain; charset=utf-8',
  };
  stream.respondWithFD(fd, headers);
  stream.on('close', () => fs.closeSync(fd));
});

Можно указать необязательную функцию options.statCheck, чтобы пользовательский код мог задать дополнительные заголовки содержимого на основе сведений fs.Stat указанного fd. Если функция statCheck задана, метод http2stream.respondWithFD() выполнит вызов fs.fstat() для сбора сведений об указанном дескрипторе файла.

Параметры offset и length можно использовать, чтобы ограничить ответ определенным диапазоном. Это можно использовать, например, для поддержки HTTP-запросов Range.

Дескриптор файла или FileHandle не закрывается при закрытии потока, поэтому его необходимо закрыть вручную, когда он больше не нужен. Одновременное использование одного дескриптора файла для нескольких потоков не поддерживается и может привести к потере данных. Повторное использование дескриптора файла после завершения потока поддерживается.

Если задан параметр options.waitForTrailers, событие 'wantTrailers' будет создано сразу после постановки в очередь последнего фрагмента отправляемых данных полезной нагрузки. Затем для отправки завершающих полей заголовка узлу можно использовать метод http2stream.sendTrailers().

Если задан параметр options.waitForTrailers, Http2Stream не будет автоматически закрыт после передачи последнего кадра DATA. Пользовательский код должен вызвать http2stream.sendTrailers() или http2stream.close(), чтобы закрыть Http2Stream.

import http2 from 'node:http2';
import fs from 'node:fs';

const server = http2.createServer();
server.on('stream', (stream) => {
  const fd = fs.openSync('/some/file', 'r');

  const stat = fs.fstatSync(fd);
  const headers = {
    'content-length': stat.size,
    'last-modified': stat.mtime.toUTCString(),
    'content-type': 'text/plain; charset=utf-8',
  };
  stream.respondWithFD(fd, headers, { waitForTrailers: true });
  stream.on('wantTrailers', () => {
    stream.sendTrailers({ ABC: 'some value to send' });
  });

  stream.on('close', () => fs.closeSync(fd));
});
respondWithFile(
path: string,
headers?: OutgoingHttpHeaders,
options?: ServerStreamFileResponseOptionsWithError,
): void

Отправляет обычный файл в качестве ответа. path должен указывать на обычный файл, иначе в объекте Http2Stream будет создано событие 'error'.

При использовании интерфейс Duplex объекта Http2Stream будет закрыт автоматически.

Можно указать необязательную функцию options.statCheck, чтобы пользовательский код мог задать дополнительные заголовки содержимого на основе сведений fs.Stat указанного файла:

Если при попытке чтения данных файла возникает ошибка, Http2Stream будет закрыт с помощью кадра RST_STREAM и стандартного кода INTERNAL_ERROR. Если определена функция обратного вызова onError, она будет вызвана. В противном случае поток будет уничтожен.

Пример с использованием пути к файлу:

import http2 from 'node:http2';
const server = http2.createServer();
server.on('stream', (stream) => {
  function statCheck(stat, headers) {
    headers['last-modified'] = stat.mtime.toUTCString();
  }

  function onError(err) {
    // stream.respond() can throw if the stream has been destroyed by
    // the other side.
    try {
      if (err.code === 'ENOENT') {
        stream.respond({ ':status': 404 });
      } else {
        stream.respond({ ':status': 500 });
      }
    } catch (err) {
      // Perform actual error handling.
      console.error(err);
    }
    stream.end();
  }

  stream.respondWithFile('/some/file',
                         { 'content-type': 'text/plain; charset=utf-8' },
                         { statCheck, onError });
});

Функцию options.statCheck также можно использовать для отмены операции отправки, вернув false. Например, условный запрос может проверить результаты stat, чтобы определить, был ли изменен файл, и вернуть соответствующий ответ 304:

import http2 from 'node:http2';
const server = http2.createServer();
server.on('stream', (stream) => {
  function statCheck(stat, headers) {
    // Check the stat here...
    stream.respond({ ':status': 304 });
    return false; // Cancel the send operation
  }
  stream.respondWithFile('/some/file',
                         { 'content-type': 'text/plain; charset=utf-8' },
                         { statCheck });
});

Поле заголовка content-length будет задано автоматически.

Параметры offset и length можно использовать, чтобы ограничить ответ определенным диапазоном. Это можно использовать, например, для поддержки HTTP-запросов Range.

Функцию options.onError также можно использовать для обработки всех ошибок, которые могут возникнуть до начала передачи файла. По умолчанию поток уничтожается.

Если задан параметр options.waitForTrailers, событие 'wantTrailers' будет создано сразу после постановки в очередь последнего фрагмента отправляемых данных полезной нагрузки. Затем для отправки завершающих полей заголовка узлу можно использовать метод http2stream.sendTrailers().

Если задан параметр options.waitForTrailers, Http2Stream не будет автоматически закрыт после передачи последнего кадра DATA. Пользовательский код должен вызвать http2stream.sendTrailers() или http2stream.close(), чтобы закрыть Http2Stream.

import http2 from 'node:http2';
const server = http2.createServer();
server.on('stream', (stream) => {
  stream.respondWithFile('/some/file',
                         { 'content-type': 'text/plain; charset=utf-8' },
                         { waitForTrailers: true });
  stream.on('wantTrailers', () => {
    stream.sendTrailers({ ABC: 'some value to send' });
  });
});

интерфейс ServerOptions

extends ServerSessionOptions<Http1Request, Http1Response, Http2Request, Http2Response>

Использование в Deno

import { type ServerOptions } from "node:http2";

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Свойства

streamResetBurst: number | undefined
необязательный
streamResetRate: number | undefined
необязательный

интерфейс ServerSessionOptions

extends SessionOptions

Использование в Deno

import { type ServerSessionOptions } from "node:http2";

Параметры типа

Http1Request extends IncomingMessage = IncomingMessage
Http1Response extends ServerResponse = ServerResponse
Http2Request extends Http2ServerRequest = Http2ServerRequest
Http2Response extends Http2ServerResponse = Http2ServerResponse

Свойства

Http1IncomingMessage: Http1Request | undefined
необязательный
Http1ServerResponse: Http1Response | undefined
необязательный
Http2ServerRequest: Http2Request | undefined
необязательный
Http2ServerResponse: Http2Response | undefined
необязательный

интерфейс ServerStreamFileResponseOptions

Использование в Deno

import { type ServerStreamFileResponseOptions } from "node:http2";

Свойства

waitForTrailers: boolean | undefined
необязательный
offset: number | undefined
необязательный
length: number | undefined
необязательный

Методы

statCheck(
stats: fs.Stats,
headers: OutgoingHttpHeaders,
statOptions: StatOptions,
): void | boolean
необязательный

интерфейс ServerStreamFileResponseOptionsWithError

extends ServerStreamFileResponseOptions

Использование в Deno

import { type ServerStreamFileResponseOptionsWithError } from "node:http2";

Методы

onError(err: ErrnoException): void
необязательный

интерфейс ServerStreamResponseOptions

Использование в Deno

import { type ServerStreamResponseOptions } from "node:http2";

Свойства

endStream: boolean | undefined
необязательный
waitForTrailers: boolean | undefined
необязательный

интерфейс SessionOptions

Использование в Deno

import { type SessionOptions } from "node:http2";

Свойства

maxDeflateDynamicTableSize: number | undefined
необязательный
maxSessionMemory: number | undefined
необязательный
maxHeaderListPairs: number | undefined
необязательный
maxOutstandingPings: number | undefined
необязательный
maxSendHeaderBlockLength: number | undefined
необязательный
paddingStrategy: number | undefined
необязательный
peerMaxConcurrentStreams: number | undefined
необязательный
settings: Settings | undefined
необязательный
remoteCustomSettings: number[] | undefined
необязательный
unknownProtocolTimeout: number | undefined
необязательный

Задает время ожидания в миллисекундах, в течение которого сервер должен ожидать отправки ['unknownProtocol'][]. Если к этому моменту сокет не был уничтожен, сервер уничтожит его.

Методы

selectPadding(
frameLen: number,
maxFrameLen: number,
): number
необязательный

интерфейс SessionState

Использование в Deno

import { type SessionState } from "node:http2";

Свойства

effectiveLocalWindowSize: number | undefined
необязательный
effectiveRecvDataLength: number | undefined
необязательный
nextStreamID: number | undefined
необязательный
localWindowSize: number | undefined
необязательный
lastProcStreamID: number | undefined
необязательный
remoteWindowSize: number | undefined
необязательный
outboundQueueSize: number | undefined
необязательный
deflateDynamicTableSize: number | undefined
необязательный
inflateDynamicTableSize: number | undefined
необязательный

интерфейс Settings

Использование в Deno

import { type Settings } from "node:http2";

Свойства

headerTableSize: number | undefined
необязательный
enablePush: boolean | undefined
необязательный
initialWindowSize: number | undefined
необязательный
maxFrameSize: number | undefined
необязательный
maxConcurrentStreams: number | undefined
необязательный
maxHeaderListSize: number | undefined
необязательный
enableConnectProtocol: boolean | undefined
необязательный

интерфейс StatOptions

Использование в Deno

import { type StatOptions } from "node:http2";

Свойства

offset: number
length: number

интерфейс StreamPriorityOptions

Использование в Deno

import { type StreamPriorityOptions } from "node:http2";

Свойства

exclusive: boolean | undefined
необязательный
parent: number | undefined
необязательный
weight: number | undefined
необязательный
silent: boolean | undefined
необязательный

интерфейс StreamState

Использование в Deno

import { type StreamState } from "node:http2";

Свойства

localWindowSize: number | undefined
необязательный
state: number | undefined
необязательный
localClose: number | undefined
необязательный
remoteClose: number | undefined
необязательный
sumDependencyWeight: number | undefined
необязательный
weight: number | undefined
необязательный

пространство имён constants

Использование в Deno

import { constants } from "node:http2";

Переменные

constants.DEFAULT_SETTINGS_ENABLE_PUSH
Документация отсутствует
constants.DEFAULT_SETTINGS_HEADER_TABLE_SIZE
Документация отсутствует
constants.DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE
Документация отсутствует
constants.DEFAULT_SETTINGS_MAX_FRAME_SIZE
Документация отсутствует
constants.HTTP2_HEADER_ACCEPT
Документация отсутствует
constants.HTTP2_HEADER_ACCEPT_CHARSET
Документация отсутствует
constants.HTTP2_HEADER_ACCEPT_ENCODING
Документация отсутствует
constants.HTTP2_HEADER_ACCEPT_LANGUAGE
Документация отсутствует
constants.HTTP2_HEADER_ACCEPT_RANGES
Документация отсутствует
constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS
Документация отсутствует
constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERS
Документация отсутствует
constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODS
Документация отсутствует
constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN
Документация отсутствует
constants.HTTP2_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS
Документация отсутствует
constants.HTTP2_HEADER_ACCESS_CONTROL_REQUEST_HEADERS
Документация отсутствует
constants.HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD
Документация отсутствует
constants.HTTP2_HEADER_AGE
Документация отсутствует
constants.HTTP2_HEADER_ALLOW
Документация отсутствует
constants.HTTP2_HEADER_AUTHORITY
Документация отсутствует
constants.HTTP2_HEADER_AUTHORIZATION
Документация отсутствует
constants.HTTP2_HEADER_CACHE_CONTROL
Документация отсутствует
constants.HTTP2_HEADER_CONNECTION
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_DISPOSITION
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_ENCODING
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_LANGUAGE
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_LENGTH
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_LOCATION
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_MD5
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_RANGE
Документация отсутствует
constants.HTTP2_HEADER_CONTENT_TYPE
Документация отсутствует
constants.HTTP2_HEADER_COOKIE
Документация отсутствует
constants.HTTP2_HEADER_DATE
Документация отсутствует
constants.HTTP2_HEADER_ETAG
Документация отсутствует
constants.HTTP2_HEADER_EXPECT
Документация отсутствует
constants.HTTP2_HEADER_EXPIRES
Документация отсутствует
constants.HTTP2_HEADER_FROM
Документация отсутствует
constants.HTTP2_HEADER_HOST
Документация отсутствует
constants.HTTP2_HEADER_HTTP2_SETTINGS
Документация отсутствует
constants.HTTP2_HEADER_IF_MATCH
Документация отсутствует
constants.HTTP2_HEADER_IF_MODIFIED_SINCE
Документация отсутствует
constants.HTTP2_HEADER_IF_NONE_MATCH
Документация отсутствует
constants.HTTP2_HEADER_IF_RANGE
Документация отсутствует
constants.HTTP2_HEADER_IF_UNMODIFIED_SINCE
Документация отсутствует
constants.HTTP2_HEADER_KEEP_ALIVE
Документация отсутствует
constants.HTTP2_HEADER_LAST_MODIFIED
Документация отсутствует
constants.HTTP2_HEADER_LINK
Документация отсутствует
constants.HTTP2_HEADER_LOCATION
Документация отсутствует
constants.HTTP2_HEADER_MAX_FORWARDS
Документация отсутствует
constants.HTTP2_HEADER_METHOD
Документация отсутствует
constants.HTTP2_HEADER_PATH
Документация отсутствует
constants.HTTP2_HEADER_PREFER
Документация отсутствует
constants.HTTP2_HEADER_PROXY_AUTHENTICATE
Документация отсутствует
constants.HTTP2_HEADER_PROXY_AUTHORIZATION
Документация отсутствует
constants.HTTP2_HEADER_PROXY_CONNECTION
Документация отсутствует
constants.HTTP2_HEADER_RANGE
Документация отсутствует
constants.HTTP2_HEADER_REFERER
Документация отсутствует
constants.HTTP2_HEADER_REFRESH
Документация отсутствует
constants.HTTP2_HEADER_RETRY_AFTER
Документация отсутствует
constants.HTTP2_HEADER_SCHEME
Документация отсутствует
constants.HTTP2_HEADER_SERVER
Документация отсутствует
constants.HTTP2_HEADER_SET_COOKIE
Документация отсутствует
constants.HTTP2_HEADER_STATUS
Документация отсутствует
constants.HTTP2_HEADER_STRICT_TRANSPORT_SECURITY
Документация отсутствует
constants.HTTP2_HEADER_TE
Документация отсутствует
constants.HTTP2_HEADER_TRANSFER_ENCODING
Документация отсутствует
constants.HTTP2_HEADER_UPGRADE
Документация отсутствует
constants.HTTP2_HEADER_USER_AGENT
Документация отсутствует
constants.HTTP2_HEADER_VARY
Документация отсутствует
constants.HTTP2_HEADER_VIA
Документация отсутствует
constants.HTTP2_HEADER_WWW_AUTHENTICATE
Документация отсутствует
constants.HTTP2_METHOD_ACL
Документация отсутствует
constants.HTTP2_METHOD_BASELINE_CONTROL
Документация отсутствует
constants.HTTP2_METHOD_BIND
Документация отсутствует
constants.HTTP2_METHOD_CHECKIN
Документация отсутствует
constants.HTTP2_METHOD_CHECKOUT
Документация отсутствует
constants.HTTP2_METHOD_CONNECT
Документация отсутствует
constants.HTTP2_METHOD_COPY
Документация отсутствует
constants.HTTP2_METHOD_DELETE
Документация отсутствует
constants.HTTP2_METHOD_GET
Документация отсутствует
constants.HTTP2_METHOD_HEAD
Документация отсутствует
constants.HTTP2_METHOD_LABEL
Документация отсутствует
constants.HTTP2_METHOD_LINK
Документация отсутствует
constants.HTTP2_METHOD_LOCK
Документация отсутствует
constants.HTTP2_METHOD_MERGE
Документация отсутствует
constants.HTTP2_METHOD_MKACTIVITY
Документация отсутствует
constants.HTTP2_METHOD_MKCALENDAR
Документация отсутствует
constants.HTTP2_METHOD_MKCOL
Документация отсутствует
constants.HTTP2_METHOD_MKREDIRECTREF
Документация отсутствует
constants.HTTP2_METHOD_MKWORKSPACE
Документация отсутствует
constants.HTTP2_METHOD_MOVE
Документация отсутствует
constants.HTTP2_METHOD_OPTIONS
Документация отсутствует
constants.HTTP2_METHOD_ORDERPATCH
Документация отсутствует
constants.HTTP2_METHOD_PATCH
Документация отсутствует
constants.HTTP2_METHOD_POST
Документация отсутствует
constants.HTTP2_METHOD_PRI
Документация отсутствует
constants.HTTP2_METHOD_PROPFIND
Документация отсутствует
constants.HTTP2_METHOD_PROPPATCH
Документация отсутствует
constants.HTTP2_METHOD_PUT
Документация отсутствует
constants.HTTP2_METHOD_REBIND
Документация отсутствует
constants.HTTP2_METHOD_REPORT
Документация отсутствует
constants.HTTP2_METHOD_SEARCH
Документация отсутствует
constants.HTTP2_METHOD_TRACE
Документация отсутствует
constants.HTTP2_METHOD_UNBIND
Документация отсутствует
constants.HTTP2_METHOD_UNCHECKOUT
Документация отсутствует
constants.HTTP2_METHOD_UNLINK
Документация отсутствует
constants.HTTP2_METHOD_UNLOCK
Документация отсутствует
constants.HTTP2_METHOD_UPDATE
Документация отсутствует
constants.HTTP2_METHOD_UPDATEREDIRECTREF
Документация отсутствует
constants.HTTP2_METHOD_VERSION_CONTROL
Документация отсутствует
constants.HTTP_STATUS_ACCEPTED
Документация отсутствует
constants.HTTP_STATUS_ALREADY_REPORTED
Документация отсутствует
constants.HTTP_STATUS_BAD_GATEWAY
Документация отсутствует
constants.HTTP_STATUS_BAD_REQUEST
Документация отсутствует
constants.HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED
Документация отсутствует
constants.HTTP_STATUS_CONFLICT
Документация отсутствует
constants.HTTP_STATUS_CONTINUE
Документация отсутствует
constants.HTTP_STATUS_CREATED
Документация отсутствует
constants.HTTP_STATUS_EXPECTATION_FAILED
Документация отсутствует
constants.HTTP_STATUS_FAILED_DEPENDENCY
Документация отсутствует
constants.HTTP_STATUS_FORBIDDEN
Документация отсутствует
constants.HTTP_STATUS_FOUND
Документация отсутствует
constants.HTTP_STATUS_GATEWAY_TIMEOUT
Документация отсутствует
constants.HTTP_STATUS_GONE
Документация отсутствует
constants.HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED
Документация отсутствует
constants.HTTP_STATUS_IM_USED
Документация отсутствует
constants.HTTP_STATUS_INSUFFICIENT_STORAGE
Документация отсутствует
constants.HTTP_STATUS_INTERNAL_SERVER_ERROR
Документация отсутствует
constants.HTTP_STATUS_LENGTH_REQUIRED
Документация отсутствует
constants.HTTP_STATUS_LOCKED
Документация отсутствует
constants.HTTP_STATUS_LOOP_DETECTED
Документация отсутствует
constants.HTTP_STATUS_METHOD_NOT_ALLOWED
Документация отсутствует
constants.HTTP_STATUS_MISDIRECTED_REQUEST
Документация отсутствует
constants.HTTP_STATUS_MOVED_PERMANENTLY
Документация отсутствует
constants.HTTP_STATUS_MULTI_STATUS
Документация отсутствует
constants.HTTP_STATUS_MULTIPLE_CHOICES
Документация отсутствует
constants.HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED
Документация отсутствует
constants.HTTP_STATUS_NO_CONTENT
Документация отсутствует
constants.HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION
Документация отсутствует
constants.HTTP_STATUS_NOT_ACCEPTABLE
Документация отсутствует
constants.HTTP_STATUS_NOT_EXTENDED
Документация отсутствует
constants.HTTP_STATUS_NOT_FOUND
Документация отсутствует
constants.HTTP_STATUS_NOT_IMPLEMENTED
Документация отсутствует
constants.HTTP_STATUS_NOT_MODIFIED
Документация отсутствует
constants.HTTP_STATUS_OK
Документация отсутствует
constants.HTTP_STATUS_PARTIAL_CONTENT
Документация отсутствует
constants.HTTP_STATUS_PAYLOAD_TOO_LARGE
Документация отсутствует
constants.HTTP_STATUS_PAYMENT_REQUIRED
Документация отсутствует
constants.HTTP_STATUS_PERMANENT_REDIRECT
Документация отсутствует
constants.HTTP_STATUS_PRECONDITION_FAILED
Документация отсутствует
constants.HTTP_STATUS_PRECONDITION_REQUIRED
Документация отсутствует
constants.HTTP_STATUS_PROCESSING
Документация отсутствует
constants.HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED
Документация отсутствует
constants.HTTP_STATUS_RANGE_NOT_SATISFIABLE
Документация отсутствует
constants.HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE
Документация отсутствует
constants.HTTP_STATUS_REQUEST_TIMEOUT
Документация отсутствует
constants.HTTP_STATUS_RESET_CONTENT
Документация отсутствует
constants.HTTP_STATUS_SEE_OTHER
Документация отсутствует
constants.HTTP_STATUS_SERVICE_UNAVAILABLE
Документация отсутствует
constants.HTTP_STATUS_SWITCHING_PROTOCOLS
Документация отсутствует
constants.HTTP_STATUS_TEAPOT
Документация отсутствует
constants.HTTP_STATUS_TEMPORARY_REDIRECT
Документация отсутствует
constants.HTTP_STATUS_TOO_MANY_REQUESTS
Документация отсутствует
constants.HTTP_STATUS_UNAUTHORIZED
Документация отсутствует
constants.HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS
Документация отсутствует
constants.HTTP_STATUS_UNORDERED_COLLECTION
Документация отсутствует
constants.HTTP_STATUS_UNPROCESSABLE_ENTITY
Документация отсутствует
constants.HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE
Документация отсутствует
constants.HTTP_STATUS_UPGRADE_REQUIRED
Документация отсутствует
constants.HTTP_STATUS_URI_TOO_LONG
Документация отсутствует
constants.HTTP_STATUS_USE_PROXY
Документация отсутствует
constants.HTTP_STATUS_VARIANT_ALSO_NEGOTIATES
Документация отсутствует
constants.MAX_INITIAL_WINDOW_SIZE
Документация отсутствует
constants.MAX_MAX_FRAME_SIZE
Документация отсутствует
constants.MIN_MAX_FRAME_SIZE
Документация отсутствует
constants.NGHTTP2_CANCEL
Документация отсутствует
constants.NGHTTP2_COMPRESSION_ERROR
Документация отсутствует
constants.NGHTTP2_CONNECT_ERROR
Документация отсутствует
constants.NGHTTP2_DEFAULT_WEIGHT
Документация отсутствует
constants.NGHTTP2_ENHANCE_YOUR_CALM
Документация отсутствует
constants.NGHTTP2_ERR_FRAME_SIZE_ERROR
Документация отсутствует
constants.NGHTTP2_FLAG_ACK
Документация отсутствует
constants.NGHTTP2_FLAG_END_HEADERS
Документация отсутствует
constants.NGHTTP2_FLAG_END_STREAM
Документация отсутствует
constants.NGHTTP2_FLAG_NONE
Документация отсутствует
constants.NGHTTP2_FLAG_PADDED
Документация отсутствует
constants.NGHTTP2_FLAG_PRIORITY
Документация отсутствует
constants.NGHTTP2_FLOW_CONTROL_ERROR
Документация отсутствует
constants.NGHTTP2_FRAME_SIZE_ERROR
Документация отсутствует
constants.NGHTTP2_HTTP_1_1_REQUIRED
Документация отсутствует
constants.NGHTTP2_INADEQUATE_SECURITY
Документация отсутствует
constants.NGHTTP2_INTERNAL_ERROR
Документация отсутствует
constants.NGHTTP2_NO_ERROR
Документация отсутствует
constants.NGHTTP2_PROTOCOL_ERROR
Документация отсутствует
constants.NGHTTP2_REFUSED_STREAM
Документация отсутствует
constants.NGHTTP2_SESSION_CLIENT
Документация отсутствует
constants.NGHTTP2_SESSION_SERVER
Документация отсутствует
constants.NGHTTP2_SETTINGS_ENABLE_PUSH
Документация отсутствует
constants.NGHTTP2_SETTINGS_HEADER_TABLE_SIZE
Документация отсутствует
constants.NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE
Документация отсутствует
constants.NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
Документация отсутствует
constants.NGHTTP2_SETTINGS_MAX_FRAME_SIZE
Документация отсутствует
constants.NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE
Документация отсутствует
constants.NGHTTP2_SETTINGS_TIMEOUT
Документация отсутствует
constants.NGHTTP2_STREAM_CLOSED
Документация отсутствует
constants.NGHTTP2_STREAM_STATE_CLOSED
Документация отсутствует
constants.NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL
Документация отсутствует
constants.NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE
Документация отсутствует
constants.NGHTTP2_STREAM_STATE_IDLE
Документация отсутствует
constants.NGHTTP2_STREAM_STATE_OPEN
Документация отсутствует
constants.NGHTTP2_STREAM_STATE_RESERVED_LOCAL
Документация отсутствует
constants.NGHTTP2_STREAM_STATE_RESERVED_REMOTE
Документация отсутствует
constants.PADDING_STRATEGY_CALLBACK
Документация отсутствует
constants.PADDING_STRATEGY_MAX
Документация отсутствует
constants.PADDING_STRATEGY_NONE
Документация отсутствует

переменная constants.DEFAULT_SETTINGS_ENABLE_PUSH

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.DEFAULT_SETTINGS_HEADER_TABLE_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.DEFAULT_SETTINGS_MAX_FRAME_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP2_HEADER_ACCEPT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCEPT_CHARSET

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCEPT_ENCODING

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCEPT_LANGUAGE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCEPT_RANGES

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCESS_CONTROL_REQUEST_HEADERS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ACCESS_CONTROL_REQUEST_METHOD

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_AGE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ALLOW

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_AUTHORITY

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_AUTHORIZATION

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CACHE_CONTROL

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONNECTION

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_DISPOSITION

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_ENCODING

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_LANGUAGE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_LENGTH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_LOCATION

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_MD5

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_RANGE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_CONTENT_TYPE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_COOKIE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_DATE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_ETAG

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_EXPECT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_EXPIRES

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_FROM

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_HOST

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_HTTP2_SETTINGS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_IF_MATCH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_IF_MODIFIED_SINCE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_IF_NONE_MATCH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_IF_RANGE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_IF_UNMODIFIED_SINCE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_KEEP_ALIVE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_LAST_MODIFIED

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_LINK

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_LOCATION

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_MAX_FORWARDS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_METHOD

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_PATH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_PREFER

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_PROXY_AUTHENTICATE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_PROXY_AUTHORIZATION

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_PROXY_CONNECTION

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_RANGE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_REFERER

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_REFRESH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_RETRY_AFTER

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_SCHEME

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_SERVER

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_SET_COOKIE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_STATUS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_STRICT_TRANSPORT_SECURITY

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_TE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_TRANSFER_ENCODING

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_UPGRADE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_USER_AGENT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_VARY

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_VIA

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_HEADER_WWW_AUTHENTICATE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_ACL

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_BASELINE_CONTROL

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_BIND

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_CHECKIN

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_CHECKOUT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_CONNECT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_COPY

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_DELETE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_GET

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_HEAD

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_LABEL

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_LINK

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_LOCK

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_MERGE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_MKACTIVITY

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_MKCALENDAR

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_MKCOL

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_MKREDIRECTREF

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_MKWORKSPACE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_MOVE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_OPTIONS

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_ORDERPATCH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_PATCH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_POST

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_PRI

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_PROPFIND

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_PROPPATCH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_PUT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_REBIND

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_REPORT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_SEARCH

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_TRACE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_UNBIND

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_UNCHECKOUT

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_UNLINK

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_UNLOCK

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_UPDATE

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_UPDATEREDIRECTREF

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP2_METHOD_VERSION_CONTROL

Использование в Deno

import { constants } from "node:http2";

Тип

string

переменная constants.HTTP_STATUS_ACCEPTED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_ALREADY_REPORTED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_BAD_GATEWAY

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_BAD_REQUEST

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_CONFLICT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_CONTINUE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_CREATED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_EXPECTATION_FAILED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_FAILED_DEPENDENCY

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_FORBIDDEN

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_FOUND

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_GATEWAY_TIMEOUT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_GONE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_IM_USED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_INSUFFICIENT_STORAGE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_INTERNAL_SERVER_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_LENGTH_REQUIRED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_LOCKED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_LOOP_DETECTED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_METHOD_NOT_ALLOWED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_MISDIRECTED_REQUEST

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_MOVED_PERMANENTLY

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_MULTI_STATUS

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_MULTIPLE_CHOICES

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NO_CONTENT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NOT_ACCEPTABLE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NOT_EXTENDED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NOT_FOUND

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NOT_IMPLEMENTED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_NOT_MODIFIED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_OK

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PARTIAL_CONTENT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PAYLOAD_TOO_LARGE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PAYMENT_REQUIRED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PERMANENT_REDIRECT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PRECONDITION_FAILED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PRECONDITION_REQUIRED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PROCESSING

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_RANGE_NOT_SATISFIABLE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_REQUEST_TIMEOUT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_RESET_CONTENT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_SEE_OTHER

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_SERVICE_UNAVAILABLE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_SWITCHING_PROTOCOLS

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_TEAPOT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_TEMPORARY_REDIRECT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_TOO_MANY_REQUESTS

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_UNAUTHORIZED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_UNORDERED_COLLECTION

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_UNPROCESSABLE_ENTITY

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_UPGRADE_REQUIRED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_URI_TOO_LONG

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_USE_PROXY

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.HTTP_STATUS_VARIANT_ALSO_NEGOTIATES

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.MAX_INITIAL_WINDOW_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.MAX_MAX_FRAME_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.MIN_MAX_FRAME_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_CANCEL

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_COMPRESSION_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_CONNECT_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_DEFAULT_WEIGHT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_ENHANCE_YOUR_CALM

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_ERR_FRAME_SIZE_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FLAG_ACK

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FLAG_END_HEADERS

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FLAG_END_STREAM

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FLAG_NONE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FLAG_PADDED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FLAG_PRIORITY

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FLOW_CONTROL_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_FRAME_SIZE_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_HTTP_1_1_REQUIRED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_INADEQUATE_SECURITY

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_INTERNAL_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_NO_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_PROTOCOL_ERROR

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_REFUSED_STREAM

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SESSION_CLIENT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SESSION_SERVER

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SETTINGS_ENABLE_PUSH

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SETTINGS_HEADER_TABLE_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SETTINGS_MAX_FRAME_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_SETTINGS_TIMEOUT

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_CLOSED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_STATE_CLOSED

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_STATE_IDLE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_STATE_OPEN

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_STATE_RESERVED_LOCAL

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.NGHTTP2_STREAM_STATE_RESERVED_REMOTE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.PADDING_STRATEGY_CALLBACK

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.PADDING_STRATEGY_MAX

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная constants.PADDING_STRATEGY_NONE

Использование в Deno

import { constants } from "node:http2";

Тип

number

переменная sensitiveHeaders

Использование в Deno

import { sensitiveHeaders } from "node:http2";

Этот символ можно установить как свойство объекта заголовков HTTP/2 со значением-массивом, чтобы указать список заголовков, считающихся конфиденциальными.

Тип

symbol

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/http2

Spec-Zone.ru

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