HTTP/2

Difference between version 8 and 9 - Previous - Next
** Definition **

'''http://http2.github.io/%|%HTTP/2%|%''' (earlier called "HTTP/2.0") is a new version of the [HTTP] protocol. It is specified in a standard that was published as [https://tools.ietf.org/html/rfc7540%|%RFC 7540] in May 2015. As of October 2018 30% of all websites surveyed by [https://w3techs.com/technologies/details/ce-http2/all/all|%|%W3Techs] use HTTP/2.
** Client **

Since [cURL] got HTTP/2 support after 7.43.0 (with the [https://nghttp2.org/%|%nghttp2] library), the HTTP/2 protocol can be used in Tcl through [TclCurl].
An implementation of HTTP/2 in Tcl is provided by the [https://chiselapp.com/user/schelte/repository/www%|%www] package by [Schelte Bron].  This package implements [HTTP 1.1], [HTTP/2], and [WebSocket].  It also takes care of redirects, retries, cookies, and proxies.

** Server **

[Apache] version 2.4.17 introduced HTTP/2 support. Starting from Apache 2.4.27, the Apache MPM (Multi-Processing Module) prefork no longer supports HTTP/2. Apache [Rivet] 3.0.0 support threaded MPMs such as mod_mpm_worker and mod_mpm_event. So you can use Apache/mod_http2 (after 2.4.27) and work with Apache Rivet (after 3.0.0).


** See Also **

   * [https://en.wikipedia.org/wiki/HTTP/2%|%HTTP/2 - Wikipedia]
   * [https://daniel.haxx.se/http2/%|%http2 explained]
   * [https://httpd.apache.org/docs/2.4/howto/http2.html%|%Apache HTTP Server Version 2.4 HTTP/2 guide]
   * [https://blog.cloudflare.com/tools-for-debugging-testing-and-using-http-2/%|%Tools for debugging, testing and using HTTP/2]

<<categories>>Protocol | HTTP | Internet | Web