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:

JSR369

Java.net project:

servlet-spec
Also see Java EE Platform Specification project, javaee-spec

Stable:

Final Release

Date:

05 Sept, 2017

Download Page:

Overview
Direct Download

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:

JSR340

Java.net project:

servlet-spec

Stable:

Final Release

Date:

28 May, 2013

Download Page:

Overview
Direct Download

Online Javadoc:

Java EE 7

Minimum Tomcat version:

8.0.0

Spec versions:Servlet 3.0
Main page:JSR315
Stable:Final ReleaseMaintenance Release (Version 3.0 Rev a)
Date:10 Dec, 20096 Feb, 2011
Download Page:Overview
Direct Download
Overview
Change Log
Direct Download - PDF
Online Javadoc:Java EE 6
Minimum Tomcat version:7.0.07.0.25

Spec versions:

Servlet 2.5

Main page:

JSR154

Stable:

Maintenance Release

Maintenance Release 2

Date:

11 May, 2006

11 Sep, 2007

Download Page:

Overview
Direct Download - Javadoc, classes

Overview
Direct Download - PDF

Online Javadoc:

Java EE 5

Minimum Tomcat version:

6.0.0

6.0.44 (bug 57703)

Spec versions:

Servlet 2.4

Main page:

JSR154

Stable:

Final Release

Date:

24 Nov, 2003

Download Page:

Overview
Direct Download

Online Javadoc:

Java EE 1.4

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.3EL 3.0
Main page:JSR245JSR341
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, 201322 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:

JSR245

Stable:

Maintenance Release

The naming is according to JSR 245. The title page of the
JSP specification document says "Maintenace Release 2"

Date:

10 Dec, 2009

Download Page:

Overview
Direct Download - JSP 2.2
Direct Download - EL 2.2

Online Javadoc:

Java EE 6

Minimum Tomcat version:

7.0.0

Spec versions:

JSP 2.1

Main page:

JSR245

Stable:

Final Release

Date:

11 May, 2006

Download Page:

Overview
Direct Download

Online Javadoc:

Java EE 5

Minimum Tomcat version:

6.0.0

Spec versions:

JSP 2.0

Main page:

JSR152

Stable:

Final Release

Date:

24 November, 2003

Download Page:

Overview
Direct Download

Online Javadoc:

Java EE 1.4

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:

JSR356

JSR356

Java.net project:websocket-spec

Stable:

Final Release

Maintenance Release

Date:

22 May, 2013

5 August, 2014

Download Page:

Overview
Direct Download

Overview
Direct Download

Online Javadoc:

Java EE 7


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:

Overview
Direct Download

Overview
Direct Download

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 2616 (June 1999) - Hypertext Transfer Protocol -- HTTP/1.1 - obsolete, replaced by 7230...7235

RFC 7230 (June 2014) - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing - obsolete, replaced by 9110, 9112
RFC 7231 (June 2014) - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content - obsolete, replaced by 9110
RFC 7232 (June 2014) - Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests - obsolete, replaced by 9110
RFC 7233 (June 2014) - Hypertext Transfer Protocol (HTTP/1.1): Range Requests - obsolete, replaced by 9110
RFC 7234 (June 2014) - Hypertext Transfer Protocol (HTTP/1.1): Caching - obsolete, replaced by 9111
RFC 7235 (June 2014) - Hypertext Transfer Protocol (HTTP/1.1): Authentication - obsolete, replaced by 9110

RFC 9110 (June 2022) - HTTP Semantics
RFC 9111 (June 2022) - HTTP Caching
RFC 9112 (June 2022) - HTTP/1.1

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 7541 (May 2015) - HPACK: Header Compression for HTTP/2

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 2069 (January 1997) - An Extension to HTTP : Digest Access Authentication - obsolete, replaced by 2617.
The authentication as a whole and the BASIC authentication method were defined in RFC 2068 ch.11. The DIGEST authentication method was defined in RFC 2069.

RFC 2617 (June 1999) - HTTP Authentication: Basic and Digest Access Authentication - obsolete,
It covers BASIC and DIGEST authentication methods

RFC 7616 (September 2015) - HTTP Digest Access Authentication
RFC 7617 (September 2015) - The 'Basic' HTTP Authentication Scheme

See also RFC 7235 (obsolete), RFC 7615 (obsolete), RFC 9110.

RFC 6265

"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.

Obsolete specifications: RFC2109, RFC 2965.

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.