Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
771 blopes 1
<!DOCTYPE html SYSTEM "about:legacy-compat">
2
<html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet" type="text/css"><title>Apache Tomcat 9 Architecture (9.0.112) - Request Process Flow</title></head><body><div id="wrapper"><header><div id="header"><div><div><div class="logo noPrint"><a href="https://tomcat.apache.org/"><img alt="Tomcat Home" src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div class="asfLogo noPrint"><a href="https://www.apache.org/" target="_blank"><img src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width: 266px; height: 83px;"></a></div><h1>Apache Tomcat 9 Architecture</h1><div class="versionInfo">
3
            Version 9.0.112,
4
            <time datetime="2025-11-06">Nov 6 2025</time></div><div style="height: 1px;"></div><div style="clear: left;"></div></div></div></div></header><div id="middle"><div><div id="mainLeft" class="noprint"><div><nav><div><h2>Links</h2><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Architecture Home</a></li><li><a href="https://cwiki.apache.org/confluence/display/TOMCAT/FAQ">FAQ</a></li><li><a href="#comments_section">User Comments</a></li></ul></div><div><h2>Contents</h2><ul><li><a href="index.html">Contents</a></li><li><a href="overview.html">Overview</a></li><li><a href="startup.html">Server Startup</a></li><li><a href="requestProcess.html">Request Process</a></li></ul></div></nav></div></div><div id="mainRight"><div id="content"><h2>Request Process Flow</h2><h3 id="Introduction">Introduction</h3><div class="text">
5
<p>
6
This page describes how requests flow through Tomcat during processing. Requests
7
start processing in an endpoint, then get passed to the protocol and then the
8
Coyote adapter which is the common entry point for all servlet request
9
processing.
10
</p>
11
<p>
12
The UML diagrams do not show every detail of Tomcat's internal processing. They
13
are intended to show the key elements of the processing chain.
14
</p>
15
</div><h3 id="Endpoint_implementations">Endpoint implementations</h3><div class="text">
16
<p>
17
UML diagrams have been created for each Endpoint implementation to show how
18
requests flow from the endpoint to the protocol.
19
</p>
20
<p>
21
<a href="requestProcess/11_nio.png">Diagram 1.1</a> shows how requests received via
22
an NIO based endpoint are processed upto the point they reach the processor
23
instance.
24
</p>
25
<p>
26
NIO2 - TBD.
27
</p>
28
</div><h3 id="Protocols">Protocols</h3><div class="text">
29
<p>
30
UML diagrams have been created for each protocol to show how requests flow from
31
the processor instance to the CoyoteAdapter.
32
</p>
33
<p>
34
<a href="requestProcess/21_http11.png">Diagram 2.1</a> shows how HTTP/0.9, HTTP/1.0
35
and HTTP/1.1 requests are processed.
36
</p>
37
<p>
38
HTTP/2 - TBD.
39
</p>
40
<p>
41
AJP - TBD.
42
</p>
43
</div><h3 id="Servlet_engine">Servlet engine</h3><div class="text">
44
<p>
45
<a href="requestProcess/31_synchronous.png">Diagram 3.1</a> shows synchronous
46
Servlet requests are processed.
47
</p>
48
<p>
49
Asynchronous - TBD.
50
</p>
51
</div><h3 id="Authentication">Authentication</h3><div class="text">
52
<p>
53
<a href="requestProcess/41_basic.png">Diagram 4.1</a> shows how BASIC
54
authentication is processed.
55
</p>
56
<p>
57
DIGEST - TBD.
58
</p>
59
<p>
60
FORM - TBD.
61
</p>
62
<p>
63
Jakarta Authentication (JASPIC) - TBD.
64
</p>
65
</div></div></div></div></div><footer><div id="footer">
66
    Copyright &copy; 1999-2025, The Apache Software Foundation
67
    <br>
68
    Apache Tomcat, Tomcat, Apache, the Apache Tomcat logo and the Apache logo
69
    are either registered trademarks or trademarks of the Apache Software
70
    Foundation.
71
    </div></footer></div></body></html>