bad 304 handling over SSL connection.




Networking: HTTP
16 years ago
16 years ago


(Reporter: Sergei Haller, Assigned: Vinay Badami)



Firefox Tracking Flags

(Not tracked)



(3 attachments)



16 years ago
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.6) Gecko/20011120
BuildID:    2001112012

If you go get a file over an SSL connection and the server returns a
Last-Modified field, Mozilla remembers it till next reequest.

on the next request of the same file the server logs a 304 response.
(seems that mozilla remembered the Last-Modified Date and sent
an If-Modified-Since field in the request). This time the server does not send
the Last-Modified field (why should it? it is the same as

If I request the same file once again, the server logs a 200 response
(it seems that mozilla didn't sent the If-Modified-Since field.
Did mozilla forgot the Last-Modified time of the file?)

If I disable SSL on the server, mozilla always get a 304 response
If I enable SSL, mozilla get 200 and 304 in turn.

I tried Netscape 4.77 on Windows, it always get a 304 response
(on both SSL/non-SSL connections)

Reproducible: Always

Steps to Reproduce: see Description

Expected Results:  if Mozilla gets an 304 response over an SSL connection,
it should remember the Last-Modified field from a previous request.

here some lines from the server log: - - [06/Dec/2001:16:25:57 +0100] "GET /media/men_ok_06.gif
HTTP/1.1" 200 267 - - [06/Dec/2001:16:25:59 +0100] "GET /media/men_ok_06.gif
HTTP/1.1" 304 0 - - [06/Dec/2001:16:26:01 +0100] "GET /media/men_ok_06.gif
HTTP/1.1" 200 267 - - [06/Dec/2001:16:26:02 +0100] "GET /media/men_ok_06.gif
HTTP/1.1" 304 0 - - [06/Dec/2001:16:26:03 +0100] "GET /media/men_ok_06.gif
HTTP/1.1" 200 267

It costed me many hours of time to find the reason of this. 

I whish you a happy fixing ;-)
Ever confirmed: true

Comment 1

16 years ago
-> badami for investigation

Comment 2

16 years ago
-> badami (second try)
Assignee: darin → badami

Comment 3

16 years ago
Created attachment 70237 [details]
log of interaction with

Grep for main.css. It appears thrice and the Last-Modified headers are being
used in subsequesnt requests as If-Modified since.

Comment 4

16 years ago
nav.css in the attached http.log also seems fine.

Marking as WFM.
Last Resolved: 16 years ago
Resolution: --- → WORKSFORME

Comment 5

16 years ago
Created attachment 70282 [details]
Log with SSL from

Comment 6

16 years ago
Created attachment 70283 [details]
Log without SSL from

Comment 7

16 years ago
just created two attachments - the one is on the SSL port.
as you can see, the /media/shop.css is requested several times.
first time with response 200
then several times with response 304
then (!!!) again once with 200
then several times with response 304
and then again several times with 200.

After that I tried the same on the non-SSL port:
I just have two documents - index.shtml and nindex.shtml, which are nearly the
same. both of them use /media/shop.shtml and /media/ssl-login.png.

I called both docs several times - always response 200.

Since I don't have the version of Mozilla which appears on the bug report
anymore, I've done tht tests with the newest non-CVS version 0.9.8:
  Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:0.9.8) Gecko/20020204

BTW.: since apache 1.3 doesn't support logging whole request/response header, I
created following CustomLogDirective:

LogFormat "--%t--\n\
http request [\n\
  Host: %{Host}i\n\
  User-Agent: %{User-Agent}i\n\
  If-Modified-Since: %{If-Modified-Since}i\n\
  If-None-Match: %{If-None-Match}i\n\
  Referer: %{Referer}i\n\
http response[\n\
  Content-type: %{Content-type}o\n\
  Last-Modified: %{Last-Modified}o\n\
  Etag: %{Etag}o\n\
  Content-Length: %{Content-Length}o\n\
  Accept-Ranges: %{Accept-Ranges}o\n\
]" testlogfmt


Comment 8

16 years ago
What r ur browser preferneces set to under
Edit --> preference --> Advanced --> Cache ?

Comment 9

16 years ago
As I started testing today, it was set to "When the page is out of date".
While testing I already looked onto this settimg and changed it to "never".
maybe this was the point where all the responses became 200.

But I just changed it back to "When the page is out of date" - and I get same
results in non-ssl mode. (always response 200)

now I created a copy of index.shtml accessible as test.shtml on the SSL port
and a copy of nindex.shtml accessible as testn.shtml on the SSL port.

-- and voila! the css and png files get always response 304. 

looked again on the non-SSL port: now am getting always 304 here, too.

but I can't explain the one response 200 at 19/Feb/2002:13:26:32, which 
appeared only once.

and I also can't explain, why I got always responses 200 after changing back
from "never" to "When the page is out of date" (see above)

However, it seems that the bug I originally reported, is fixed in meantime.

Thank you very much.
You need to log in before you can comment on or make changes to this bug.