In the previous section, we focused on an approach that was based on remote
interfaces. In this section, we’ll discuss another approach for client-server
communication that is based on HTTP.
HTTP21 is the most widely used protocol across the Internet, connecting browserbased
clients and Web servers. The primary purpose of HTTP is to define requests and
responses between browsers and Web servers. In this model, a browser sends an
HTTP request to a Web server (also called an HTTP server), which generates some
response and sends back to the client as a HTTP response.
HTTP is a generic protocol that only specifies certain types of requests, as well as
the structure of requests and responses. Unlike the remote interface-based model in
which you specify a remote interface, with HTTP, the contract between the client
(browser) and the server (Web server) is fixed by the HTTP. Clients and servers can
however express parameters and results within HTTP requests and responses.
In the following discussion, the term client means Web browser, and the word
server means a Web server. However, note that it is possible to build custom HTTP
clients that are not Web browsers and custom HTTP servers that are not full-fledged
Web servers.22 In fact, technologies, such as XML-RPC23 and Simple Object Access
Protocol (SOAP) are based on non-browser clients interacting with server-side objects
via HTTP.
The HTTP
The following demonstrates how the basic HTTP protocol works between Web
browsers and Web servers:
The client composes a HTTP request and sends it to a HTTP server (located at a
HTTP address as http://). You can identify a Web server with a HTTP URL.24 An
HTTP request includes a request header and a request body. The request header
includes a request URI25 and optionally certain parameters (known as query
parameters). These parameters are specified as name-value pairs at the end of the
request URL. Depending on the type of the request (which will be discussed
shortly), the request body might be empty, or it might contain MIME26 messages.
The HTTP server receives the message and attempts to identify the resource
specified in the request. For instance, if your HTTP request points to
http://www.mightywords.com/bestsellers/index.html, the Web server identified by
www.mightywords.com tries to map the resource /bestsellers/index.html to a
physical HTML file available under the Web server’s file system. Alternatively,
the Web server could map a request, such as http://www.mightywords.com/buynow,
to an application that can generate custom HTML.
If the server is able to identify a resource, it sends the resource as an HTTP
response indicating what type of resource is being sent. The server also sends a
status message.27
HTTP Programming Needs
HTTP does not specify how to implement the logic needed to respond to HTTP
request. It is up to the HTTP server to honor the request in any manner deemed