Report: Problems with the Expires header.

Koen Holtman (koen@win.tue.nl)
Thu, 20 Jul 1995 16:32:52 +0200 (MET DST)

This is to announce the availability of a report on problems with the
HTTP Expires header.

This report is available in hypertext form at
http://www.amazon.com/expires-report.html, and in plain text form at
http://www.amazon.com/expires-report.txt. For discussions about the
report, we suggest using the www-talk mailing list.

Excerpts from the text version of the report are included below.

Koen.

------------------------------------------------------------------------

PROBLEMS WITH THE EXPIRES HEADER

Dynamic documents vs. history functions

Koen Holtman, koen@win.tue.nl
Shel Kaphan, sjk@amazon.com
19 July 1995

SUMMARY

Developments in the implementation of browser history functions
prevent the HTTP Expires header from becoming the standard, generally
usable mechanism for controlling the behavior of caches.

To allow all types of dynamic services, which by their nature need to
restrict caching, to be implemented in a simple, reliable, and efficient
way, the HTTP specification must be extended. We will propose several
alternative solutions.

Some of the proposed HTTP extensions would not only fix problems of
cache control, but their acceptance would also add a means of
controlling the contents of browser history lists. Better control
over history list contents is needed for some types of dynamic
services.

AUDIENCE

This report discusses problems concerning cache control mechanisms
that are relevant to browser authors, the authors of dynamic web
services, and everyone contributing to the future development of HTTP.

We will present several alternative proposals for extensions to the
HTTP specification that solve the discussed cache control problems.
We hope that this report will generate a discussion leading to a
consensus about which alternative is best.

[...]

TABLE OF CONTENTS

Introduction
What The HTTP Specification Says
What The HTTP Specification Does Not Say
Why Does This Matter?
An Example
What Browsers Do
Disadvantages Unrelated to Network Load
Uncoupling Cache and History
What Is Needed
List of Proposals
proposal 1: do nothing
proposal 2: discourage honoring expires in history functions
proposal 3A: add a header to control history: History-Control
proposal 3B: add a header to control history: History-Expires
proposal 4A: add a second way of disabling caching: pragma no-cache
proposal 4B: add a second way of disabling caching: last-modified
proposal 5: conditional posts
Summary of Proposal Advantages and Disadvantages

[...]

SUMMARY OF PROPOSAL ADVANTAGES AND DISADVANTAGES

[...]

|---------------------------------|----|----|----|----|----|----|----|
|Proposal number | 1 | 2 | 3A | 3B | 4A | 4B | 5 |
|---------------------------------|----|----|----|----|----|----|----|
|Solves Expires/caching problem | -- | ++ | ++ | ++ | ++ | ++ | + |
|Browsers now conform | ++ | -- | 0 | 0 | 0 | + | 0 |
|Quick move to conformance | + | - | + | - | + | + | -- |
|---------------------------------|----|----|----|----|----|----|----|
|Allows history function control | 0 | 0 | ++ | + | 0 | 0 | 0 |
|---------------------------------|----|----|----|----|----|----|----|
| Work needed on: (more is worse) | | | | | | | |
| - HTTP specification | 0 | - | -- | -- | -- | -- | -- |
| - New browser code | 0 | - | -- | -- | - | -- | -- |
| - New proxy code | 0 | 0 | 0 | 0 | - | 0 | -- |
| - New server code | 0 | 0 | 0 | 0 | 0 | 0 | -- |
|---------------------------------|----|----|----|----|----|----|----|
|Overall conclusion | -- | + | ++ | + | 0 | 0 | - |
|---------------------------------|----|----|----|----|----|----|----|

Meaning of ratings:
-- very bad / - bad / 0 neutral / + good / ++ very good