nghttp2

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
nghttp2
Original authorTatsuhiro Tsujikawa
Initial release2013
Repositorygithub.com/nghttp2/nghttp2
Written inC
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    PlatformmacOS, Windows, POSIX
    TypeHTTP/2 implementation
    LicenseMIT License
    Websitenghttp2.org

    nghttp2 is a C library. It is an implementation of HTTP/2.

    History

    [edit | edit source]

    nghttp2 was created by Tatsuhiro Tsujikawa as a derivative of spdylay, an implementation of SPDY, a communications protocol created by Google in 2009, in C.[1][2]

    Several well-known projects use nghttp2 to implement HTTP/2, including Apache and cURL.[3][4]

    Features

    [edit | edit source]

    HTTP/2 implementation

    [edit | edit source]

    nghttp2 will send a WINDOW_UPDATE frame upon consuming more than half of the flow control window. For instance, if the sender specifies the SETTINGS_INITIAL_WINDOW_SIZE [sic] as 65,535 octets in the SETTINGS frame, nghttp2 will send a WINDOW_UPDATE frame upon exceeding 32,768 octets. The initial window size may be changed using the -w and -W flags.[5]

    Tools

    [edit | edit source]

    nghttp2 offers multiple tools. nghttp is a command-line tool that uses nghttp2 to output HTTP/2 messages from a URL.[6] nghttp's dependency-based priority is based on Firefox; when a connection is established, nghttp sends five PRIORITY frames.[7] Other tools provided include nghttpd, an HTTP/2 server, nghttpx, an HTTP/2 proxy, h2load, an HTTP/2 load testing tool, and inflatehd and deflatehd, tools to decompress and compress using the HPACK header compression algorithm.[8]

    nghttp3

    [edit | edit source]

    nghttp3 is an implementation of HTTP/3 in C and authored by Tsujikawa. nghttp3 uses the QUIC network protocol designed by Jim Roskind at Google.[9]

    References

    [edit | edit source]

    Citations

    [edit | edit source]
    1. ^ Pollard 2019, p. 18.
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Pollard 2019, p. 347.
    4. ^ Ludin & Garza 2017, p. 112.
    5. ^ Pollard 2019, p. 233.
    6. ^ Pollard 2019, p. 116.
    7. ^ Pollard 2019, p. 128.
    8. ^ Ludin & Garza 2017, p. 110.
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

    Bibliography

    [edit | edit source]
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).