optilude
optilude

Reputation: 3548

What could cause the HTTP If-Modified-Since header to contain two comma separated dates?

I have a site behind IIS and Enfold Proxy (a reverse proxy filter for IIS), served from Plone (a CMS) via a WSGI stack. Users use IE7.

Somehow, requests are reaching the server with an If-Modified-Since header like this:

Thu, 27 Aug 2009 06:46:31 GMT,Thu, 27 Aug 2009 06:46:31

As you can see, there are two dates here (one with a time zone, one without), separated by commas.

The code in Plone is capable of handling two dates separated by semicolons, but this format causes it to barf.

Whilst I can work around it, I'd like to figure out where the If-Modified-Since header is coming from and how it could be comma-delimited instead of semicolon-delimited. Any ideas?

Martin

Upvotes: 0

Views: 453

Answers (2)

Kornel
Kornel

Reputation: 100210

This header might have been created by joining two separate If-Modified-Since headers. In general HTTP allows merging of multiple headers into one comma-separated one, and proxies might do that.

However, it does not allow this in case of If-Modified-Since header, so you're getting malformed request and should ignore If-Modified-Since or fail with status 400.

Upvotes: 2

Gumbo
Gumbo

Reputation: 655795

In general HTTP uses commas to separate items in a list while semicolons are used to separate parameters of an item. So the comma syntax would be correct.

But according to the specification, the If-Modified-Since header field does only allow one single date and not a list of dates. So I don’t the semantics of a list of dates in this case.

Upvotes: 1

Related Questions