After some research, it does appear to be non RFC compliant behavior. I get
this behavior when running django via the "python manage.py runserver"
command.

The client, in this case firefox, upon recieving an etag on a 404 response,
will subsequently send an If-None-Match header for the next request of the
same 404 page.

The rfc for If-None-Match states:

If the request would, without the If-None-Match header field, result in
> anything other than a 2xx or 304 status, then the If-None-Match header MUST
> be ignored. (See section 
> 13.3.4<http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.3.4>for a 
> discussion of server behavior when both If-Modified-Since and
> If-None-Match appear in the same request.)


http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26

Django is returning a 304 not modified header, instead of a 404.
In duplicating the headers sent to an apache server serving a 404 page, I
get a 404 on subsequent requests, and the if-none-match is responded to with
a 404 as expected.

This does appear to be a bug.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to