Application Layer

2.2 The Web and HTTP

Home
Introduction
2.1 Principles of Network Applications
2.1.1 Network Application Architectures
2.1.2 Processes Communcating
2.1.3 Application-Layer Protocols
2.1.4 What Services Does an Application Need?
2.1.5 Services Provided by the Internet Transport Protocols
2.2 The Web and HTTP
2.2.1Overview of HTTP
2.2.2 Nonpersistent and Persistent Connections
2.2.3 HTTP Message Format
2.2.4 User-Server Ineraction: Cookies
2.2.5 HTTP Content
2.2.6 Web Caching
2.2.7 The Conditional GET
2.3 File Transfer: FTP
2.3.1 FTP Commands and Replies
2.4 Electronic Mail in the Internet
2.4.1 STMP
2.4.2 Comparison with HTTP
2.4.3 Mail Message Formats and MIME
2.4.4 Mail Access Protocols
2.5 DNS--The Internet's Directory Service
2.5.1 Services Provided by DNS
2.5.2 Overview of How DNS Works
2.5.3 DNS Records and Messages
2.6 P2P File Sharing
2.7 Socket Programming with TCP
2.7.1 Socket Programming with TCP
2.7.2 An Example Client/Server Application in Java
2.8 Socket Programming with UDP

2.2.7 The Conditional GET

Although caching can reduce user-perceived response times, it introduces a new problem--the copy of an object residing in the cache may be stale.  The object housed in the Web server may have been modified since the copy was cached at the client.  HTTP has a mechanism that allows a cache to verify that its objects are up to date.  This mechanism is called the coditional GET.  An HTTP request message isa so-called conditional GET message if (1) the request message uses the GET method and (2) the request message includes an If-Modified-Since: header line.
 
The cache forwards the object to the requesting browser but also caches the object locally.  The cache also stores the last-modified date along withthe object.  Third, one week later, another browser request the same object via the cache, and the object is still in the cache.  Since this object may have been modified at the Web server in the past week, the cache performs an up-to-date check by issuing a conditional GET.