A reverse proxy terminates the client’s HTTP connection, reads the request, and sends a new request to a backend. Because it understands HTTP it can route by path, add headers and retry.