The Flow of Messages
HTTP messages are the blocks of data sent between HTTP applications. These blocks of data begin with some text meta-information describing the message contents and meaning, followed by optional data. These messages flow between clients, servers, and proxies. The terms "inbound," "outbound," "upstream," and "downstream" describe message direction.
Messages Commute Inbound to the Origin Server
HTTP uses the terms inbound and outbound to describe transactional direction. Messages travel inbound to the origin server, and when their work is done, they travel outbound back to the user agent (see Screenshot 3-1).
(Screenshot 3-1.)
Messages Flow Downstream
HTTP messages flow like rivers. All messages flow downstream, regardless of whether they are request messages or response messages (see Screenshot 3-2). The sender of any message is upstream of the receiver. In Screenshot 3-2, proxy 1 is upstream of proxy 3 for the request but downstream of proxy 3 for the response.
The terms "upstream" and "downstream" relate only to the sender and receiver. We can't tell whether a message is heading to the origin server or the client, because both are downstream.
(Screenshot 3-2.)