These are both timeout errors, but who is timing out in a 408 vs. a 504?

From [w3](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html), 408 is defined as:

> 
> The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.
> 
> 
> 

...And 504 is:

> 
> The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URI (e.g. HTTP, FTP, LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request.
> 
> 
> 

So who is the 'client' in the 408 if not an intermediary server? If it's an actual end user, how does a server know to wait for their request before they have made it?