If-Modified-Since

Hi,

I’m obviously losing it somehow. What am I missing here, it must be
something obvious that is going to make me look stupid, but I still
don’t see it. I just can’t get If-Modified-Since to work?

Linux poc 3.3.4-2-ARCH #1 SMP PREEMPT Wed May 2 18:28:42 CEST 2012
x86_64 Intel® Xeon® CPU E5540 @ 2.53GHz GenuineIntel GNU/Linux

Default configure/make/nginx.conf etc directly from the 1.2.0 dist.

I send an IMS header, later than the last-modified, and still get a 200?

x@poc> touch a
x@poc> curl -za -v localhost/index.html

  • About to connect() to localhost port 80 (#0)
  • Trying 127.0.0.1…
  • connected
  • Connected to localhost (127.0.0.1) port 80 (#0)

GET /index.html HTTP/1.1
User-Agent: curl/7.25.0 (x86_64-unknown-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1b
zlib/1.2.7 libssh2/1.4.0
Host: localhost
Accept: /
If-Modified-Since: Tue, 15 May 2012 11:18:36 GMT

< HTTP/1.1 200 OK
< Server: nginx/1.2.0
< Date: Tue, 15 May 2012 11:18:40 GMT
< Content-Type: text/html
< Content-Length: 151
< Last-Modified: Tue, 15 May 2012 11:17:22 GMT
< Connection: keep-alive
< Accept-Ranges: bytes
[…]

Same request against Apache

x@poc> touch a
x@poc> curl -za -v localhost/index.html

  • About to connect() to localhost port 80 (#0)
  • Trying 127.0.0.1…
  • connected
  • Connected to localhost (127.0.0.1) port 80 (#0)

GET /index.html HTTP/1.1
User-Agent: curl/7.25.0 (x86_64-unknown-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1b
zlib/1.2.7 libssh2/1.4.0
Host: localhost
Accept: /
If-Modified-Since: Tue, 15 May 2012 11:25:13 GMT

< HTTP/1.1 304 Not Modified
< Date: Tue, 15 May 2012 11:25:14 GMT
< Server: Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.1b DAV/2
< ETag: “89985-5-4c011747da2b3”

Kind regards,
Fredrik

On Tuesday 15 May 2012 13:29:00 Fredrik Widlund wrote:

User-Agent: curl/7.25.0 (x86_64-unknown-linux-gnu) libcurl/7.25.0
< Connection: keep-alive
< Accept-Ranges: bytes
[…]
[…]

http://nginx.org/r/if_modified_since

default: if_modified_since exact;
And here is explained why: #93 (If-Modified-Since rfc compliance) – nginx

wbr, Valentin V. Bartenev

Is this compliant by default? RFC 2616 says the server shouldn’t return
200 if the variant is unmodified since IMS?

Anyway, as long as it is configurable. Thanks!

Kind regards,
Fredrik

On Tuesday 15 May 2012 14:52:50 Fredrik Widlund wrote:

Is this compliant by default? RFC 2616 says the server shouldn’t return 200
if the variant is unmodified since IMS?

It’s conditionally complaint, please, look at the explanation by Maxim
Dounin:
http://trac.nginx.org/nginx/ticket/93#comment:3

And it’s chosen as the default because it’s more reliable and safe.

wbr, Valentin V. Bartenev