Apache Tomcat 9 Architecture (9.0.120) - Request Process Flow

## Request Process Flow

### Introduction

This page describes how requests flow through Tomcat during processing. Requests start processing in an endpoint, then get passed to the protocol and then the Coyote adapter which is the common entry point for all servlet request processing.

The UML diagrams do not show every detail of Tomcat's internal processing. They are intended to show the key elements of the processing chain.

### Endpoint implementations

UML diagrams have been created for each Endpoint implementation to show how requests flow from the endpoint to the protocol.

Diagram 1.1 shows how requests received via an NIO based endpoint are processed upto the point they reach the processor instance.

NIO2 - TBD.

### Protocols

UML diagrams have been created for each protocol to show how requests flow from the processor instance to the CoyoteAdapter.

Diagram 2.1 shows how HTTP/0.9, HTTP/1.0 and HTTP/1.1 requests are processed.

HTTP/2 - TBD.

AJP - TBD.

### Servlet engine

Diagram 3.1 shows synchronous Servlet requests are processed.

Asynchronous - TBD.

### Authentication

Diagram 4.1 shows how BASIC authentication is processed.

DIGEST - TBD.

FORM - TBD.

Jakarta Authentication (JASPIC) - TBD.