"content" and "proxy" HTTP servers

You've come to this page because you've asked a question similar to the following:

People keep talking about "content HTTP servers" (or "origin HTTP servers") and "proxy HTTP servers". What are these ?

This is the Frequently Given Answer to that question.

There are several distinct rôles that an HTTP server can perform. RFC 2616 § 1.4 explains the transport architecture. HTTP is in fact very much like DNS. (This isn't surprising, if one thinks about it.) Like DNS servers, HTTP servers are categorized into two main classes: content servers (a.k.a. origin servers) and proxy servers. HTTP softwares have separate programs that perform each rôle.

Content servers (a.k.a. Origin servers)

Content servers publish HTTP content to the world. The data that they publish are taken from a database, or are generated internally by the servers themselves.

The programs that perform content service

Modern HTTP packages have many programs that provide both general-purpose and specialised forms of content service. For examples:

Proxy servers

Proxy servers act as intermediaries between HTTP clients (such as a web browser application) and other HTTP servers. They handle client request messages, responding to them either using data that they have in a local cache or using data gleaned from back-end requests that they send on to other HTTP servers.

The IP addresses on which proxy servers listen

Proxy servers do not need to be, and shouldn't be, accessible from the outside world. They must be configured to listen on IP addresses that are, quite simply, not reachable from the rest of Internet, and not reachable from outside of the machine, site, or organization whose clients they are providing service to.

The programs that perform proxy service

Modern HTTP packages have programs that provide proxy service.


© Copyright 2007–2007 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp is preserved.