إقناع Firefox بإرسال رأس If-Modified-Since عبر HTTPS

StackOverflow https://stackoverflow.com/questions/16483

  •  08-06-2019
  •  | 
  •  

سؤال

كيف يمكنني إقناع 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:

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
إذا تم التعديل منذ:الثلاثاء ، 19 أغسطس 2008 15:57:30 بتوقيت جرينتش إذا لم يكن المباراة:"A0501d1-300a-454d22526ae80" -gzip cache-control:الحد الأقصى للعمر=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:

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

تحديث:جلسة browser.cache.disk_cache_ssl لقد فعلت الخدعة بشكل صحيح (وهو أمر غريب لأنه، كما يشير نيكولاي، لا تزال هناك ذاكرة تخزين مؤقت).إضافة "التحكم في ذاكرة التخزين المؤقت:public" كان رأس الاستجابة ناجحًا أيضًا.شكرًا!

هل كانت مفيدة؟

المحلول

لا يتم تخزين طلبات HTTPS مؤقتًا، لذا فإن إرسال If-Modified-Since ليس له أي معنى.عدم التخزين المؤقت هو إجراء احترازي أمني.

عدم التخزين المؤقت على القرص هو إجراء أمني مسبق، ولكن يبدو أنه يؤثر بالفعل على إذا تم تعديله منذ ذلك الحين السلوك (نظرة خاطفة على الكود).

حاول ضبط تفضيل Firefox (في about:config) browser.cache.disk_cache_ssl ل حقيقي.إذا كان ذلك يساعد، حاول الإرسال التحكم في ذاكرة التخزين المؤقت:عام رأس في ردك.


تحديث: سلوك فايرفوكس تم تغييره بالنسبة إلى Gecko 2.0 (Firefox 4) - تم الآن تخزين محتوى HTTPS مؤقتًا.

نصائح أخرى

لا يتم تخزين طلبات HTTPS مؤقتًا، لذا فإن إرسال إذا تم تعديله منذ ذلك الحين لا معنى له.عدم التخزين المؤقت هو إجراء احترازي أمني.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top