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 © 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> |