Modulehttp2-tls-0.4.5Haskell2010
Network.HTTP2.TLS.Client
Running an HTTP/2 client over TLS.
- 6 types
- 28 values
- Packagehttp2-tls-0.4.5
- Exports34
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceClient.hs
Runners
7 declarationsClient type.
Either a host name e.g., "haskell.org" or a numeric host
address string consisting of a dotted decimal IPv4 address or an
IPv6 address e.g., "192.168.0.1".
Authority.
Port number.
Use the Num instance (i.e. use a literal) to create a
PortNumber value.
1 :: PortNumber1read "1" :: PortNumber1show (12345 :: PortNumber)"12345"50000 < (51000 :: PortNumber)True50000 < (52000 :: PortNumber)True50000 + (10000 :: PortNumber)60000
Instances10Bounded, Enum, Eq, Integral, Num, Ord, …
Bounded PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesEnum PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesEq PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesIntegral PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesNum PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesOrd PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesRead PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesReal PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesShow PortNumberDefined in network-3.2.8.0 · Network.Socket.TypesStorable PortNumberDefined in network-3.2.8.0 · Network.Socket.Types
Generalized API
Client configuration
Instances2Eq, Show
Eq ClientConfigDefined in http2-5.3.10 · Network.HTTP2.Client.RunShow ClientConfigDefined in http2-5.3.10 · Network.HTTP2.Client.Run
Default authority
When we connect to a server, we can distinguish between three names, all of which may be different:
The HostName, used for the DNS lookup to get the server's IP
The HTTP2
:authoritypseudo-headerThe TLS SNI (Server Name Indicator). This is different from (2) only in exceptional circumstances, see settingsServerNameOverride.
In most cases, however, all three names are identical, and so the default
Authority is simply equal to the ServerName.
Running an HTTP/2 client over TLS (over TCP).
Running an HTTP/2 client over TCP.
runTLSWithConfig :: ClientConfig-> Settings-> HostName-> PortNumber-> ByteStringALPN
-> (Context -> SockAddr -> SockAddr -> IO a)-> IO a
Running a TLS client.
Settings
17 declarationsDefault settings.
Key logger (TLS and H2)
Applications may wish to set this depending on the SSLKEYLOGFILE environment variable.
Default: do nothing.
Should we validate TLS certificates? (TLS and H2)
settingsValidateCert defaultSettingsTrue
Certificate store used for validation. (TLS and H2)
Default: mempty.
Obsoleted.
How many pushed responses are contained in the cache (H2 and H2c)
settingsCacheLimits defaultSettings64
The maximum number of incoming streams on the net (H2 and H2c)
settingsConcurrentStreams defaultSettings64
The window size of a connection (H2 and H2c)
settingsConnectionWindowSize defaultSettings1048575
The window size of incoming streams (H2 and H2c)
settingsStreamWindowSize defaultSettings262144
Server name override (H2)
By default, the server name (for TLS SNI) is set based on the
Network.HTTP2.Client.authority, corresponding to the HTTP2
:authority pseudo-header. In rare circumstances these two values should
be different (for example in the case of domain fronting);
settingsServerNameOverride can be used to give SNI a different value
than :authority.
TLS session manager (H2 and TLS)
Default: noSessionManager
Try to resume a TLS session (H2 and TLS)
settingsWantSessionResume defaultSettingsNothing
Try to resume a TLS session (H2 and TLS). This takes precedence over settingsWantSessionResume.
settingsWantSessionResumeList defaultSettings[]
Function to initialize the server socket (All)
Default: openClientSocket
Try to use 0-RTT (H2 and TLS)
This is only supported for tls >= 2.0.
settingsUseEarlyData defaultSettingsFalse
Rate limits
Maximum number of pings allowed per second (CVE-2019-9512)
settingsPingRateLimit defaultSettings10
Maximum number of empty data frames allowed per second (CVE-2019-9518)
settingsEmptyFrameRateLimit defaultSettings4
Maximum number of settings frames allowed per second (CVE-2019-9515)
settingsSettingsRateLimit defaultSettings4
Maximum number of reset frames allowed per second (CVE-2023-44487)
settingsRstRateLimit4