<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision$ -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
<title>Relevant Standards</title>
<summary>
- <p>This page documents all the relevant standards that the
- Apache HTTP Server follows, along with brief descriptions.</p>
+ <p>This page documents the relevant standards that the
+ Apache HTTP Server implements or follows, along with brief
+ descriptions.</p>
<p>In addition to the information listed below, the following resources
should be consulted:</p>
<ul>
- <li>
- <a href="https://www.skrb.org/ietf/http_errata.html">
- https://www.skrb.org/ietf/http_errata.html</a> - HTTP/1.1 Specification Errata
- </li>
<li>
<a href="https://www.rfc-editor.org/errata.php">
- https://www.rfc-editor.org/errata.php</a> - RFC Errata
+ RFC Errata</a> - Errata for published RFCs
</li>
<li>
<a href="https://httpwg.org/specs/">
- https://httpwg.org/specs/</a> - A pre-compiled list
- of HTTP related RFCs
+ HTTP Working Group Specifications</a> - A pre-compiled list
+ of HTTP related RFCs and drafts
</li>
</ul>
- <note type="warning"><title>Notice</title>
- <p>This document is not yet complete.</p>
- </note>
-
</summary>
- <section id="http_recommendations"><title>HTTP Recommendations</title>
+ <section id="http_recommendations"><title>HTTP</title>
<p>Regardless of what modules are compiled and used, Apache as a
- basic web server complies with the following IETF recommendations:</p>
+ basic web server complies with the following IETF standards:</p>
<dl>
+ <dt><rfc>9110</rfc>
+ (Standards Track) - HTTP Semantics</dt>
+
+ <dd>Defines the semantics shared by all versions of HTTP:
+ methods, status codes, header and trailer fields, content
+ negotiation, and message metadata. Obsoletes RFC 7231, 7232,
+ 7233, 7235, and 7694.</dd>
+
+ <dt><rfc>9111</rfc>
+ (Standards Track) - HTTP Caching</dt>
+
+ <dd>Defines HTTP caches and the associated header fields that
+ control cache behavior or indicate cacheable response messages.
+ Obsoletes RFC 7234.</dd>
+
+ <dt><rfc>9112</rfc>
+ (Standards Track) - HTTP/1.1</dt>
+
+ <dd>Defines the HTTP/1.1 message syntax and connection management.
+ Obsoletes RFC 7230.</dd>
+
+ <dt><rfc>9113</rfc>
+ (Standards Track) - HTTP/2</dt>
+
+ <dd>Defines an optimized expression of HTTP semantics using
+ binary framing and multiplexed streams over a single TCP
+ connection. Obsoletes RFC 7540 and 8740.</dd>
+
+ <dt><rfc>9114</rfc>
+ (Standards Track) - HTTP/3</dt>
+
+ <dd>Defines the mapping of HTTP semantics over QUIC, providing
+ similar features to HTTP/2 with reduced latency.</dd>
+
<dt><rfc>1945</rfc>
- (Informational)</dt>
+ (Informational) - HTTP/1.0</dt>
- <dd>The Hypertext Transfer Protocol (HTTP) is an application-level
- protocol with the lightness and speed necessary for distributed,
- collaborative, hypermedia information systems. This documents
- HTTP/1.0.</dd>
+ <dd>The original HTTP/1.0 specification. Retained for historical
+ reference; httpd still accepts HTTP/1.0 requests.</dd>
+ </dl>
- <dt><rfc>2616</rfc>
- (Standards Track)</dt>
+ </section>
- <dd>The Hypertext Transfer Protocol (HTTP) is an
- application-level protocol for distributed, collaborative,
- hypermedia information systems. This documents HTTP/1.1.</dd>
+ <section id="uri"><title>URIs</title>
- <dt><rfc>2396</rfc>
- (Standards Track)</dt>
+ <dl>
+ <dt><rfc>3986</rfc>
+ (Standards Track) - Uniform Resource Identifier (URI): Generic Syntax</dt>
- <dd>A Uniform Resource Identifier (URI) is a compact string of
- characters for identifying an abstract or physical resource.</dd>
+ <dd>The generic syntax and resolution rules for Uniform Resource
+ Identifiers. Obsoletes RFC 2396.</dd>
- <dt><rfc>4346</rfc>
- (Standards Track)</dt>
+ <dt><rfc>6570</rfc>
+ (Standards Track) - URI Template</dt>
- <dd>The TLS protocol provides communications security over the
- Internet. It provides encryption, and is designed to prevent
- eavesdropping, tampering, and message forgery.</dd>
+ <dd>Defines a compact sequence of characters for describing a
+ range of URIs through variable expansion.</dd>
</dl>
</section>
- <section id="html_recommendations"><title>HTML Recommendations</title>
+ <section id="tls"><title>TLS/SSL</title>
- <p>Regarding the Hypertext Markup Language, Apache complies with
- the following IETF and W3C recommendations:</p>
+ <p>The following standards apply when <module>mod_ssl</module> is
+ enabled:</p>
<dl>
- <dt><rfc>2854</rfc>
- (Informational)</dt>
+ <dt><rfc>8446</rfc>
+ (Standards Track) - TLS 1.3</dt>
+
+ <dd>The current version of the Transport Layer Security protocol,
+ providing communications privacy over the Internet. Obsoletes
+ RFC 5246 (TLS 1.2 specification text).</dd>
+
+ <dt><rfc>5246</rfc>
+ (Standards Track) - TLS 1.2</dt>
- <dd>This document summarizes the history of HTML development,
- and defines the "text/html" MIME type by pointing to the relevant
- W3C recommendations.</dd>
+ <dd>The previous widely-deployed version of TLS. Still supported
+ by httpd for compatibility with older clients.</dd>
- <dt><a href="http://www.w3.org/TR/html401">HTML 4.01 Specification</a>
- (<a href="http://www.w3.org/MarkUp/html4-updates/errata">Errata</a>)
- </dt>
+ <dt><rfc>6960</rfc>
+ (Standards Track) - OCSP</dt>
+
+ <dd>The Online Certificate Status Protocol, used for checking
+ certificate revocation status in real time (OCSP stapling via
+ <directive module="mod_ssl">SSLStaplingCache</directive>).</dd>
+
+ <dt><rfc>6066</rfc>
+ (Standards Track) - TLS Extensions</dt>
+
+ <dd>Defines TLS extensions including Server Name Indication (SNI),
+ which httpd uses for name-based virtual hosting over TLS.</dd>
+ </dl>
- <dd>This specification defines the HyperText Markup Language (HTML),
- the publishing language of the World Wide Web. This specification
- defines HTML 4.01, which is a subversion of HTML 4.</dd>
+ </section>
- <dt><a href="http://www.w3.org/TR/REC-html32">HTML 3.2 Reference
- Specification</a></dt>
+ <section id="authentication"><title>Authentication</title>
- <dd>The HyperText Markup Language (HTML) is a simple markup language
- used to create hypertext documents that are portable from one
- platform to another. HTML documents are SGML documents.</dd>
+ <p>Concerning the different methods of authentication:</p>
- <dt><a href="http://www.w3.org/TR/xhtml11/">XHTML 1.1 -
- Module-based XHTML</a>
- (<a href="http://www.w3.org/MarkUp/2009/xhtml11-2nd-edition-errata.html">Errata</a>)
- </dt>
+ <dl>
+ <dt><rfc>7617</rfc>
+ (Standards Track) - The 'Basic' HTTP Authentication Scheme</dt>
- <dd>This Recommendation defines a new XHTML document type
- that is based upon the module framework and modules defined in
- Modularization of XHTML.</dd>
+ <dd>HTTP Basic authentication, transmitting credentials as
+ user-id/password pairs encoded in Base64. Obsoletes RFC 2617
+ (Basic auth portion).</dd>
- <dt><a href="http://www.w3.org/TR/xhtml1">XHTML 1.0 The
- Extensible HyperText Markup Language (Second Edition)</a>
- (<a href="http://www.w3.org/2002/08/REC-xhtml1-20020801-errata/">Errata</a>)
- </dt>
+ <dt><rfc>7616</rfc>
+ (Standards Track) - HTTP Digest Access Authentication</dt>
- <dd>This specification defines the Second Edition of XHTML 1.0,
- a reformulation of HTML 4 as an XML 1.0 application, and three
- DTDs corresponding to the ones defined by HTML 4.</dd>
+ <dd>HTTP Digest authentication, providing a challenge-response
+ mechanism that avoids sending the password in cleartext.
+ Obsoletes RFC 2617 (Digest auth portion).</dd>
</dl>
</section>
- <section id="authentication"><title>Authentication</title>
+ <section id="content_negotiation"><title>Content Negotiation and Compression</title>
+
+ <dl>
+ <dt><rfc section="12">9110</rfc> - Content Negotiation</dt>
+
+ <dd>Proactive and reactive content negotiation, including the
+ Accept, Accept-Language, Accept-Encoding, and Accept-Charset
+ header fields.</dd>
+
+ <dt><rfc>7932</rfc>
+ (Informational) - Brotli Compressed Data Format</dt>
- <p>Concerning the different methods of authentication, Apache
- follows the following IETF recommendations:</p>
+ <dd>Defines the Brotli compression algorithm, supported via
+ <module>mod_brotli</module>.</dd>
+ </dl>
+
+ </section>
+
+ <section id="proxy"><title>Proxying and Forwarding</title>
+
+ <p>When <module>mod_proxy</module> is enabled:</p>
<dl>
- <dt><rfc>2617</rfc>
- (Standards Track)</dt>
+ <dt><rfc>7239</rfc>
+ (Standards Track) - Forwarded HTTP Extension</dt>
+
+ <dd>Defines the Forwarded header field for conveying information
+ about the client-facing side of proxy servers.</dd>
+
+ <dt><rfc>9209</rfc>
+ (Standards Track) - The Proxy-Status HTTP Response Header Field</dt>
+
+ <dd>Defines a mechanism for proxies to communicate the details
+ of intermediary handling to the client.</dd>
+
+ <dt><rfc>9220</rfc>
+ (Standards Track) - Bootstrapping WebSockets with HTTP/2</dt>
+
+ <dd>Defines a mechanism for running the WebSocket protocol over
+ a single HTTP/2 stream.</dd>
+ </dl>
+
+ </section>
+
+ <section id="websocket"><title>WebSocket</title>
+
+ <dl>
+ <dt><rfc>6455</rfc>
+ (Standards Track) - The WebSocket Protocol</dt>
+
+ <dd>Defines the WebSocket protocol, enabling two-way
+ communication between a client and server over a single TCP
+ connection. Supported via <module>mod_proxy_wstunnel</module>.</dd>
+ </dl>
+
+ </section>
+
+ <section id="cgi"><title>CGI</title>
+
+ <dl>
+ <dt><rfc>3875</rfc>
+ (Informational) - The Common Gateway Interface (CGI) Version 1.1</dt>
+
+ <dd>Defines the Common Gateway Interface for running external
+ programs on a web server. Implemented by
+ <module>mod_cgi</module> and <module>mod_cgid</module>.</dd>
+ </dl>
+
+ </section>
+
+ <section id="webdav"><title>WebDAV</title>
+
+ <p>When <module>mod_dav</module> is enabled:</p>
+
+ <dl>
+ <dt><rfc>4918</rfc>
+ (Standards Track) - HTTP Extensions for Web Distributed Authoring
+ and Versioning (WebDAV)</dt>
+
+ <dd>Defines extensions to HTTP for distributed authoring
+ operations. Obsoletes RFC 2518.</dd>
- <dd>"HTTP/1.0", includes the specification for a Basic
- Access Authentication scheme.</dd>
+ <dt><rfc>3744</rfc>
+ (Standards Track) - Web Distributed Authoring and Versioning (WebDAV)
+ Access Control Protocol</dt>
+ <dd>Defines access control extensions to WebDAV.</dd>
</dl>
</section>
<section id="language_country_codes"><title>Language/Country Codes</title>
- <p>The following links document ISO and other language and country
- code information:</p>
+ <p>Language and country codes used in content negotiation:</p>
<dl>
- <dt><a href="http://www.loc.gov/standards/iso639-2/">ISO 639-2</a></dt>
+ <dt><a href="https://www.loc.gov/standards/iso639-2/">ISO 639-2</a></dt>
<dd>ISO 639 provides two sets of language codes, one as a two-letter
code set (639-1) and another as a three-letter code set (this part
of ISO 639) for the representation of names of languages.</dd>
- <dt><a href="http://www.iso.org/iso/country_codes">
+ <dt><a href="https://www.iso.org/iso-3166-country-codes.html">
ISO 3166-1</a></dt>
- <dd>These pages document the country names (official short names
- in English) in alphabetical order as given in ISO 3166-1 and the
- corresponding ISO 3166-1-alpha-2 code elements.</dd>
+ <dd>Country names and corresponding alpha-2 and alpha-3 code
+ elements.</dd>
- <dt><a href="https://www.rfc-editor.org/rfc/bcp/bcp47.txt">BCP 47</a>
- (Best Current Practice),
- <rfc>3066</rfc></dt>
+ <dt><rfc>5646</rfc>
+ (Best Current Practice) - Tags for Identifying Languages</dt>
- <dd>This document describes a language tag for use in cases where
- it is desired to indicate the language used in an information
- object, how to register values for use in this language tag,
- and a construct for matching such language tags.</dd>
+ <dd>Describes the structure and registry of language tags used in
+ HTTP content negotiation (Accept-Language, Content-Language).
+ Obsoletes RFC 3066.</dd>
<dt><rfc>3282</rfc>
(Standards Track)</dt>
- <dd>This document defines a "Content-language:" header, for use in
- cases where one desires to indicate the language of something that
- has RFC 822-like headers, like MIME body parts or Web documents,
- and an "Accept-Language:" header for use in cases where one wishes
- to indicate one's preferences with regard to language.</dd>
+ <dd>Defines the Content-Language and Accept-Language header fields
+ for indicating language preferences in HTTP messages.</dd>
</dl>
</section>