Има ли начин да се уточни, че ресурсът трябва да се кешира при достъп както през HTTP, така и чрез HTTPS? Имаме много статично съдържание, което първоначално се обслужва през HTTP и след това се сервира повторно през SSL, когато потребителят се опита да се регистрира или влезе, и би било хубаво да кешираме това.

Не, браузърите ще третират HTTP и HTTPS URL адресите като напълно различни, дори ако единствената действителна разлика е наличието на s.

Ако не го направиха, това би създало сериозна дупка в сигурността. Помислете какво ще се случи, ако, да речем, нападател успее да фалшифицира JS файл, зареден чрез несигурен HTTP, и по-късно браузърът повторно пусне същия JS код от кеша си на защитена страница.

Единственият начин да използвате повторно едни и същи статични ресурси както на защитени, така и на несигурни страници е да ги заредите от същите URL адреси. Тук имате основно два избора:

  • Използвайте HTTPS за статичните си ресурси, дори когато главната страница се зарежда през HTTP. Това ще работи и е сигурно, но използването на HTTPS ще наложи малки разходи на процесора и ще попречи на споделените прокси да кешират ресурсите. Все пак браузърът на потребителя ще ги кешира и все още е възможно да се използва обратен прокси или CDN за обслужване на ресурсите, стига те да могат да действат като доверени SSL крайни точки.

  • Използвайте HTTP за статичните си ресурси, дори когато основната страница се зарежда през HTTPS. Това може също работят в някои браузъри, но това е не сигурен. Дори браузърите, в които работи, обикновено предупреждават потребителя за наличието на несигурно съдържание или просто третират цялата страница като несигурна. Например IE8 ще покаже предупреждение за „смесено съдържание“, докато IE9 просто няма да зареди несигурните ресурси (с изключение на изображения).

Разбира се, имате и трета опция: просто използвайте HTTPS за всичко от вашите страници. Това може да е по-практично, отколкото бихте си помислили, особено ако значителна част от трафика ви вече използва HTTPS.

Не намерих нищо, което конкретно да посочва как браузърите трябва да се справят със споделяне на https и http кеширано съдържание, и открих противоречива информация и онлайн.

Например: Изчистих кеша си във Firefox, посетих http://www.google.com, прегледах кеша на диска (тип about:cache в url bar) и след това посетете https://www.google.com.

Въпреки че http и https кешираното съдържание, https сайтът не извлича кеширани http ресурси. Както и да е, ето няколко статии, които биха могли да бъдат полезни:

  • http://www.mnot.net/cache_docs/
  • http://www.web-caching.com/welcome.html
  • http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13

Надявам се това да помогне!

  • Не като в заглавките - можете ли да изпращате обратно HTTP заглавки в кеш през HTTP и HTTPS?
  • stackoverflow.com/questions/174348/... също може да е от значение

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?