Сведения о вопросе

Ислам

10:47, 23rd August, 2020

Теги

firefox   https    

Убедите Firefox отправить заголовок If-Modified-Since поверх HTTPS

Просмотров: 470   Ответов: 2

Как я могу убедить Firefox (3.0.1, если это имеет значение) отправить заголовок If-Modified-Since в запросе HTTPS? Он отправляет заголовок, если запрос использует обычный HTTP, и мой сервер послушно выполняет его. Но когда я запрашиваю тот же ресурс с того же сервера, используя вместо этого HTTPS (т. е. просто меняя http:// в URL на https://), то Firefox вообще не отправляет заголовок If-Modified-Since. Это поведение предписано спецификацией SSL или чем-то еще?

Вот некоторые примеры пар запрос / ответ HTTP и HTTPS, извлеченные с использованием расширения Live HTTP Headers Firefox, с некоторыми различиями в полужирном шрифте:

HTTP request/response:

http://myserver.com:30000/scripts/site.js

GET /scripts/site.js HTTP/1.1
Host: myserver.com:30000
User-Agent: Mozilla/5.0 (...) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
If-Modified-Since: Tue, 19 Aug 2008 15:57:30 GMT
If-None-Match: "a0501d1-300a-454d22526ae80"-gzip
Cache-Control: max-age=0

HTTP/1.x 304 Not Modified
Date: Tue, 19 Aug 2008 15:59:23 GMT
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8
Connection: Keep-Alive
Keep-Alive: timeout=5, max=99
Etag: "a0501d1-300a-454d22526ae80"-gzip

HTTPS request/response:

https://myserver.com:30001/scripts/site.js

GET /scripts/site.js HTTP/1.1
Host: myserver.com:30001
User-Agent: Mozilla/5.0 (...) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Date: Tue, 19 Aug 2008 16:00:14 GMT
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8
Last-Modified: Tue, 19 Aug 2008 15:57:30 GMT
Etag: "a0501d1-300a-454d22526ae80"-gzip
Accept-Ranges: bytes
Content-Encoding: gzip
Content-Length: 3766
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/javascript

UPDATE: установка browser.cache.disk_cache_ssl в true сделала трюк (что странно, потому что, как указывает Николай, все еще есть кэш памяти). Добавление заголовка "Cache-control: public" в ответ также сработало. Спасибо!



  Сведения об ответе

прога

03:09, 6th August, 2020

HTTPS запросы не кэшируются, поэтому отправка If-Modified-Since не имеет никакого смысла. Не кэширование является мерой предосторожности.

Не кэширование на диске -это предварительное предупреждение безопасности, но, похоже, оно действительно влияет на поведение If-Modified-Since (просматривая код).

Попробуйте установить для параметра Firefox (в about:config) browser.cache.disk_cache_ssl значение true . Если это поможет, попробуйте отправить заголовок Cache-Control: public в своем ответе.


UPDATE: Firefox поведение было изменено для Gecko 2.0 (Firefox 4) -- содержимое HTTPS теперь кэшируется.


  Сведения об ответе

прога

12:48, 11th August, 2020

HTTPS запросы не кэшируются, поэтому отправка If-Modified-Since не имеет никакого смысла. Не кэширование является мерой предосторожности.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться