Usage in Deno
import { Http2ServerRequest } from "node:http2";
A Http2ServerRequest
object is created by Server or SecureServer and passed as the first argument to the 'request'
event. It may be used to access a request status,
headers, and
data.
Http2ServerRequest(stream: ServerHttp2Stream,headers: IncomingHttpHeaders,options: stream.ReadableOptions,rawHeaders: readonly string[],)
aborted: boolean
The request.aborted
property will be true
if the request has
been aborted.
authority: string
The request authority pseudo header field. Because HTTP/2 allows requests
to set either :authority
or host
, this value is derived from req.headers[':authority']
if present. Otherwise, it is derived from req.headers['host']
.
complete: boolean
The request.complete
property will be true
if the request has
been completed, aborted, or destroyed.
connection: net.Socket | tls.TLSSocket
See request.socket
.
headers: IncomingHttpHeaders
The request/response headers object.
Key-value pairs of header names and values. Header names are lower-cased.
// Prints something like:
//
// { 'user-agent': 'curl/7.22.0',
// host: '127.0.0.1:8000',
// accept: '*' }
console.log(request.headers);
See HTTP/2 Headers Object
.
In HTTP/2, the request path, host name, protocol, and method are represented as
special headers prefixed with the :
character (e.g. ':path'
). These special
headers will be included in the request.headers
object. Care must be taken not
to inadvertently modify these special headers or errors may occur. For instance,
removing all headers from the request will cause errors to occur:
removeAllHeaders(request.headers);
assert(request.url); // Fails because the :path header has been removed
httpVersion: string
In case of server request, the HTTP version sent by the client. In the case of
client response, the HTTP version of the connected-to server. Returns '2.0'
.
Also message.httpVersionMajor
is the first integer and message.httpVersionMinor
is the second.
httpVersionMajor: number
httpVersionMinor: number
method: string
The request method as a string. Read-only. Examples: 'GET'
, 'DELETE'
.
rawHeaders: string[]
The raw request/response headers list exactly as they were received.
The keys and values are in the same list. It is not a list of tuples. So, the even-numbered offsets are key values, and the odd-numbered offsets are the associated values.
Header names are not lowercased, and duplicates are not merged.
// 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[]
The raw request/response trailer keys and values exactly as they were
received. Only populated at the 'end'
event.
scheme: string
The request scheme pseudo header field indicating the scheme portion of the target URL.
socket: net.Socket | tls.TLSSocket
Returns a Proxy
object that acts as a net.Socket
(or tls.TLSSocket
) but
applies getters, setters, and methods based on HTTP/2 logic.
destroyed
, readable
, and writable
properties will be retrieved from and
set on request.stream
.
destroy
, emit
, end
, on
and once
methods will be called on request.stream
.
setTimeout
method will be called on request.stream.session
.
pause
, read
, resume
, and write
will throw an error with code ERR_HTTP2_NO_SOCKET_MANIPULATION
. See Http2Session and Sockets
for
more information.
All other interactions will be routed directly to the socket. With TLS support,
use request.socket.getPeerCertificate()
to obtain the client's
authentication details.
stream: ServerHttp2Stream
The Http2Stream
object backing the request.
trailers: IncomingHttpHeaders
The request/response trailers object. Only populated at the 'end'
event.
url: string
Request URL string. This contains only the URL that is present in the actual HTTP request. If the request is:
GET /status?name=ryan HTTP/1.1
Accept: text/plain
Then request.url
will be:
'/status?name=ryan'
To parse the url into its parts, new URL()
can be used:
$ 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
Sets the Http2Stream
's timeout value to msecs
. If a callback is
provided, then it is added as a listener on the 'timeout'
event on
the response object.
If no 'timeout'
listener is added to the request, the response, or
the server, then Http2Stream
s are destroyed when they time out. If a
handler is assigned to the request, the response, or the server's 'timeout'
events, timed out sockets must be handled explicitly.