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 publish HTTP content to the world. The data that they publish are taken from a database, or are generated internally by the servers themselves.
Modern HTTP packages have many programs that provide both general-purpose and specialised forms of content service. For examples:
In Daniel J. Bernstein's publicfile, httpd is a content server.
In the Internet Utilities for OS/2, httpd is a content server.
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.
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.
Modern HTTP packages have programs that provide proxy service.
In the Internet Utilities for OS/2, httppd is a proxy server.