[news.software.b] Format of "Expires: " header?

roy@phri.UUCP (Roy Smith) (10/06/89)

	Perusing my news spool directory tree, I noticed two different
formats for Expires: headers.  All the articles in news.announce.conferences
have headers which look like the following (some header lines deleted):

+----------------
|Newsgroups: news.announce.conferences
|Subject: CFP: Optical Computing (April 8-12 '90, Japan) (In English)
|Message-ID: <1989Sep5.000014.11070@mcmi.uucp>
|Date: 5 Sep 89 00:00:14 GMT
|Expires: 11/10/89
|Sender: denny@mcmi.uucp (Denny Page)
|Approved: denny@mcmi
+----------------

while the articles in  news.newusers.questions have headers like this:

+----------------
|From: tneff@bfmny0.UU.NET (Tom Neff)
|Newsgroups: news.newusers.questions
|Subject: When to Post, When to Mail?
|Message-ID: <14644@bfmny0.UU.NET>
|Date: 10 Sep 89 01:55:26 GMT
|Expires: 10 Oct 89 00:00:00 GMT
+----------------

	It was always my understanding that the proper "Expires: " format is
as in the second example.  Is the first (mm/dd/yy) also legal?
-- 
Roy Smith, Public Health Research Institute
455 First Avenue, New York, NY 10016
{att,philabs,cmcl2,rutgers,hombre}!phri!roy -or- roy@alanine.phri.nyu.edu
"The connector is the network"

henry@utzoo.uucp (Henry Spencer) (10/10/89)

In article <4036@phri.UUCP> roy@phri.UUCP (Roy Smith) writes:
>|Expires: 11/10/89
>|Expires: 10 Oct 89 00:00:00 GMT
>	It was always my understanding that the proper "Expires: " format is
>as in the second example.  Is the first (mm/dd/yy) also legal?

In practice, most anything that getdate() will understand is a reasonable
choice.  In theory, it ought to conform to RFC822 as well, which the first
format does not.  Use of the first format is a dumb idea for another reason
too:  it's ambiguous.  (US custom puts month first, British custom puts
day first.)
-- 
A bit of tolerance is worth a  |     Henry Spencer at U of Toronto Zoology
megabyte of flaming.           | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

denny@mcmi.uucp (Denny Page) (10/13/89)

henry@utzoo.uucp (Henry Spencer) writes:
>>|Expires: 11/10/89
>>	It was always my understanding that the proper "Expires: " format is
>>as in the second example.  Is the first (mm/dd/yy) also legal?
>
>In practice, most anything that getdate() will understand is a reasonable
>choice.  In theory, it ought to conform to RFC822 as well, which the first
>format does not.  Use of the first format is a dumb idea for another reason
>too:  it's ambiguous.  (US custom puts month first, British custom puts
>day first.)

Being the guilty party here...

The reason that these have been showing up in news.announce.conferences
since late July is mcmi's switch to C news.  C news (via inews) does not
edit the Expires header as B news did, which my shell scripts depend on.
To be quite honest, I hadn't noticed this until Roy pointer it out.  I
will fix this when I have a chance - I've been meaning to re-write my
scripts in perl anyway.
-- 
Good health is merely the slowest rate at which one can die.

allbery@NCoast.ORG (Brandon S. Allbery) (10/13/89)

As quoted from <4036@phri.UUCP> by roy@phri.UUCP (Roy Smith):
+---------------
| 	Perusing my news spool directory tree, I noticed two different
| formats for Expires: headers.  All the articles in news.announce.conferences
| have headers which look like the following (some header lines deleted):
| 
| |Expires: 11/10/89
| 
| while the articles in  news.newusers.questions have headers like this:
| 
| |Expires: 10 Oct 89 00:00:00 GMT
| 
| 	It was always my understanding that the proper "Expires: " format is
| as in the second example.  Is the first (mm/dd/yy) also legal?
+---------------

The "Expires:" line can, in practice, take almost any date format.  The smarts
are hidden in a YACC parser, "getdate.y", which can construct dates from
absolute or relative date specifications in a subset of English as well as in
various digital formats.  (Example:  my Welcome! postings in comp.sources.misc
get an Expires: of "6 weeks"; getdate.y has no trouble with this, it expires 6
weeks after arriving on a system.)

There *are* things it cannot or will not handle.  Example:  occasional
postings come in with "31 Dec 1969 21:00:00" expiration dates, which are the
usual result of passing 0 to the ctime() function.  Second example:  someone
in rec.motorcycles put "Expires: never" in his posting.  (The latter, BTW,
contained other header irregularities which convinced me that the poster
simply wasn't aware of the intended meaning of the headers.  I can define a
meaning for Expires: which does what the poster apparently intended, but it
isn't the official meaning (and would be less useful as well, since the
current meaning includes the restricted one):  the date is the date after
which the article is no longer applicable, as with e.g. a posting about
something to happen on a given date, which is less than useful the day *after*
the event.)  (How did I notice this?  Expire does the date conversion in C
news, and send mail to the news administrator if it can't understand the date.)

Anyway, while the relevant RFC's may define a specific date format, in
practice one can use almost anything.  I wouldn't worry about it unless Rick
Adams, Henry Spencer, Geoff Collyer, or some other news program architect
(Eric?) decides not to support the current date-handling mechanism.

++Brandon
-- 
Brandon S. Allbery, moderator of comp.sources.misc	     allbery@NCoast.ORG
uunet!hal.cwru.edu!ncoast!allbery		    ncoast!allbery@hal.cwru.edu
bsa@telotech.uucp, 161-7070 BALLBERY (MCI), ALLBERY (Delphi), B.ALLBERY (GEnie)
Is that enough addresses for you?   no?   then: allbery@uunet.UU.NET (c.s.misc)