
client protocol is implemented by Web browsers, such as
Internet Explorer, Firefox, and Chrome. Web browser soft-
ware usually has a great deal of additional functionality:
HTTP itself is a simple protocol, and a basic client imple-
mentation is only a very small part of the code in these
browsers.
Web server software implements the HTTP server proto-
col. The Apache Web server is the leading Web server today,
and is perhaps the best-known example of open-source
software. Internet Information Ser vices, by Microsoft, is
another popular Web server.
Web server software runs on machines that are also called
Web servers. In consequence, there is some ambiguity when
people speak of Web servers. When “a server is unreachable,”
it could be the machine or the software that is meant; in
many cases, the difference may not be material. Since we
are primarily concerned with software in this book, when-
ever we say “Web server” we mean the Web server software.
Resources
The unit of access in HTTP is a resource, which is most
often just an HTML file. However, in general, a resource can
be any unit of transfer. Indeed, HTTP requests often are for
resources that are images, remotely invoked Web services,
outputs of dynamically executed programs, and so on. Of
course, for a resource to be requested and transferred, it must
first be identified. This leads to the following, somewhat
circular, definition for a resource: A resource is any object
on the Web that has a Uniform Resource Identifier (URI).
Resources on the Web are typically identified by means
of a Uniform Resource Locator (URL). (We will say more
about URI versus URL in a moment.) A URL is of the form
http://server:port/path#fragment?search.
The server part of the URL may be specified as a human-
understandable
host name or as a network-understandable
IP address
. An Internetwide domain name service (DNS)
is used to translate a server machine name, such as
www.umich.edu,
to a numeric IP address, which may
look
something like 135.22.87.1. A Web browser can take a URL,
find the server specification part of it, and have that
converted to an IP address using DNS.
180 Chapter 9 XML AND WEB DATABASES