Permalink to this page: https://cwiki.apache.org/confluence/x/Bi8lBg
This is a reference page that provides links to specifications, implemented by Apache Tomcat.
Table of Contents
Web Application Specifications
Overview
This section provides a list of API specifications which are implemented by Apache Tomcat.
The specifications are developed and maintained by the Java Community Process (JCP). The members of the JCP are coming from software industry, other organizations like the Apache Software Foundation (ASF), educational institutions but include also individual (personal) members.
Each specifications starts its life as a so-called Java Specification Request JSR. The JSRs are also known by the unique number they receive once the specification process starts. On the web site of the JCP you can find an overview page for each spec, and a separate download page. The download page lists various stages of each spec reflecting the development process of JCP specs. Examples are "Early Draft Review", "Public Final Draft" and "Final Release". You would like to make sure that you always access the latest documents.
Different Tomcat versions implement different versions of the specifications (see main site, wiki).
Java Servlet Specifications
Servlet 4.0 specification is JSR 369.
Servlet 3.1 specification is JSR 340.
Servlet 3.0 specification is JSR 315.
Servlet 2.5 is a maintenance release of Servlet 2.4. Both are JSR 154.
Spec versions: | Servlet 4.0 |
Main page: | |
Java.net project: | servlet-spec |
Stable: | Final Release |
Date: | 05 Sept, 2017 |
Download Page: | |
Online Javadoc: | Java EE 8 (A javaee.github.io link. Not available at docs.oracle.com?) |
Minimum Tomcat version: | 9.0.0 |
Spec versions: | Servlet 3.1 |
Main page: | |
Java.net project: | |
Stable: | Final Release |
Date: | 28 May, 2013 |
Download Page: | |
Online Javadoc: | |
Minimum Tomcat version: | 8.0.0 |
Spec versions: | Servlet 3.0 | |
Main page: | JSR315 | |
Stable: | Final Release | Maintenance Release (Version 3.0 Rev a) |
Date: | 10 Dec, 2009 | 6 Feb, 2011 |
Download Page: | Overview Direct Download | Overview Change Log Direct Download - PDF |
Online Javadoc: | Java EE 6 | |
Minimum Tomcat version: | 7.0.0 | 7.0.25 |
Spec versions: | Servlet 2.5 | |
Main page: | ||
Stable: | Maintenance Release | Maintenance Release 2 |
Date: | 11 May, 2006 | 11 Sep, 2007 |
Download Page: | Overview Direct Download - PDF | |
Online Javadoc: | ||
Minimum Tomcat version: | 6.0.0 | 6.0.44 (bug 57703) |
Spec versions: | Servlet 2.4 |
Main page: | |
Stable: | Final Release |
Date: | 24 Nov, 2003 |
Download Page: | |
Online Javadoc: | |
Minimum Tomcat version: | 5.0.0 |
JavaServer Pages and Expression Language Specifications
JSP 2.3 is the second maintenance release of JSP 2.1 (JSR 245). Expression Language 3.0 is JSR 341.
JSP 2.2 is the first maintenance release of JSP 2.1 (JSR 245).
JSP 2.1 is JSR 245.
JSP 2.0 is JSR 152.
Expression Language was covered by JSP 2.0 and JSP 2.1 specifications, but became a separate document starting with JSP 2.2.
Specification: | JSP 2.3 | EL 3.0 |
Main page: | JSR245 | JSR341 |
Java.net project: | jsp-spec-public ? | el-spec |
Stable: | Maintenance Release 2 The naming is according to JSR 245. The title page of the JSP specification document says "Maintenace Release 3" | Final Release |
Date: | 12 Jun, 2013 | 22 May, 2013 |
Download Page: | Overview Direct Download | Overview Direct Download |
Online Javadoc: | Java EE 7, Java EE 8 | |
Minimum Tomcat version: | 8.0.0 |
Spec versions: | JSP 2.2, EL 2.2 |
Main page: | |
Stable: | Maintenance Release The naming is according to JSR 245. The title page of the |
Date: | 10 Dec, 2009 |
Download Page: | |
Online Javadoc: | |
Minimum Tomcat version: | 7.0.0 |
Spec versions: | JSP 2.1 |
Main page: | |
Stable: | Final Release |
Date: | 11 May, 2006 |
Download Page: | |
Online Javadoc: | |
Minimum Tomcat version: | 6.0.0 |
Spec versions: | JSP 2.0 |
Main page: | |
Stable: | Final Release |
Date: | 24 November, 2003 |
Download Page: | |
Online Javadoc: | |
Minimum Tomcat version: | 5.0.0 |
Java API for WebSocket
Java API for WebSocket is JSR 356. An implementation is to be included in Tomcat 8. See also Bug 51181.
Since Tomcat 7.0.47 this implementation is included with Tomcat 7, but it is only available if Tomcat is run with Java 7 or later.
Spec versions: | Java API for WebSocket 1.0 | Java API for WebSocket 1.1 |
Main page: | ||
Java.net project: | websocket-spec | |
Stable: | Final Release | Maintenance Release |
Date: | 22 May, 2013 | 5 August, 2014 |
Download Page: | ||
Online Javadoc: | ||
Minimum Tomcat version: | 7.0.47, 8.0.0 | 7.0.56, 8.0.13 |
Java Authentication Service Provider Interface for Containers Specification
JASPIC 1.1 is the second maintenance release, Maintenance Release B, of JASPIC 1.0 (JSR 196).
Spec versions: | JASPIC 1.0 | JASPIC 1.1 |
Main page: | JSR196 | |
Java.net project: | jaspic-spec | |
Stable: | Final Release | Maintenance Release B |
Date: | 10 Oct, 2007 | 12 Jun, 2013 |
Download Page: | ||
Online Javadoc: | Java EE 7 | |
Minimum Tomcat version: | 8.5.0 |
See Also
Protocol Specifications
The following are specifications for the web protocols supported by Tomcat.
HTTP, HTTP/2
HTTP 0.9 | The Original HTTP as defined in 1991 at W3.org |
HTTP/1.0 | RFC 1945 (May 1996) - Hypertext Transfer Protocol -- HTTP/1.0 |
HTTP/1.1 | RFC 2068 (January 1997) - Hypertext Transfer Protocol -- HTTP/1.1 - obsolete, replaced by 2616 RFC 7230 (June 2014) - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing - obsolete, replaced by 9110, 9112 RFC 9110 (June 2022) - HTTP Semantics |
HTTP/2 | HTTP/2 home page, maintained by the IETF HTTPbis Working Group RFC 7540 (May 2015) - Hypertext Transfer Protocol Version 2 (HTTP/2) - obsolete, replaced by 9113 RFC 9113 (June 2022) - HTTP/2 |
HTTP/3 | RFC 9114 (June 2022) - HTTP/3 Not yet implemented by Apache Tomcat. (As of July 2022) |
HTTP - Related Specifications
BASIC and DIGEST authentication methods | RFC 2068 (January 1997) - Hypertext Transfer Protocol -- HTTP/1.1 - obsolete, replaced by 2616 RFC 2617 (June 1999) - HTTP Authentication: Basic and Digest Access Authentication - obsolete, RFC 7616 (September 2015) - HTTP Digest Access Authentication See also RFC 7235 (obsolete), RFC 7615 (obsolete), RFC 9110. |
"HTTP State Management Mechanism" The specification about cookies. It is implemented by org.apache.tomcat.util.http.Rfc6265CookieProcessor that is available since Tomcat 8.0.15 and is the default one starting with Tomcat 8.5.0. See also "Cookies" page in "Development and Development Issues / Archive" on this wiki. | |
RFC 6266 | "Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)" Content-Disposition header is used by file uploads. See also Bug 59115 |
draft-thomson-hybi-http-timeout-03 | "Hypertext Transfer Protocol (HTTP) Keep-Alive Header". A draft of specification. Support for sending a Keep-Alive response header was added in Tomcat 8.5.48, 9.0.29 — Bug 63835. This feature can be turned off via an attribute on HTTP/1.1 Connector. |
RFC 9218 (June 2022) | "Extensible Prioritization Scheme for HTTP" Defines prioritization scheme and priority signals. To be used in HTTP/2 as a replacement for the original specification of stream priority signals (defined by RFC 7540) that was later deprecated by RFC 9113 (section 5.3.2.). Not yet implemented by Apache Tomcat. (As of December 6th 2022) See discussion. |
AJP
The AJP protocol specification lives on the Apache Tomcat Connector web site.
WebSocket
WebSocket protocol is specified by RFC 6455.