The HyperText Transfer Protocol (HTTP) is a great example of a simple,
effective request/response model used on the Web to request and respond
to requests for HTML and other content. Example 2-4
shows a typical HTTP request/response pairing, where
GET /home.html HTTP/1.0 is the request,
and everything else, starting with
HTTP/1.1 200 OK,
is the response.
GET /home.html HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 11 Jun 2001 13:43:13 GMT Server: Apache/1.3.12 (Unix) mod_perl/1.24 Last-Modified: Fri, 09 Jun 2000 13:47:56 GMT ETag: "8a69-6a-3940f58c" Accept-Ranges: bytes Content-Length: 306 Connection: close Content-Type: text/html <html> <head> ...
It shows us the request verb
GET and the specification
of what to retrieve (the
/home.html document), and it
shows us what is returned in response.
While we’ve already seen that the Jabber protocol is asynchronous in
nature, there is a similar request/response model available, too, which
tends to the synchronous (i.e., first request, then response), although,
unlike HTTP, the response is not guaranteed to
immediately follow the request. Other unrelated Jabber
fragments may be received in the stream in the time between request and
response. This request/response model is called
Info/Query, or IQ for
short; the Jabber element employed in the implementation of this
This IQ model has many uses in providing Jabber’s basic IM features. Figure 2-1 shows the element ...