Чи я можу змусити Firefox не кешувати переадресації (301 та 302)?


11

Я веб-розробник, і багато разів мені доводиться створювати або змінювати переадресацію 301 або 302. Тестувати негайні зміни в Firefox важко, тому що він кешує переадресації, тож якщо я зміню сторону сервера переадресації, а потім жорстке оновлення, старе переспрямування буде кешоване, тому єдиним способом я можу перевірити нове - видалити кеш або запуск сеансу приватного браузера.

За словами, обійти це не особливо складно, але це дратує, особливо коли я забуваю це зробити, і схоже, що моє нове переадресація не працює, поки я не згадаю видалити кеш або почати новий приватний сеанс .

Я розумію, чому для звичайного використання корисно кешувати переадресації, але я хотів би відключити поведінку з метою налагодження.

Відповіді:


8

Ви можете встановити опцію вимкнення консультацій з кешем, якщо у вас відкрита панель інструментів розробника (як це відбувається F12).

Щоб встановити цю опцію:

  1. На будь-якій сторінці натисніть, F12щоб відкрити панель інструментів розробника.
  2. Клацніть значок шестірні у верхньому правому куті панелі.
  3. Там встановіть прапорець "Додаткові налаштування → Вимкнути кеш (коли відкрито панель інструментів)".

Перенаправлення кеша все ще будуть кешовані від відвідувань без відкритої панелі інструментів розробника, але цей кеш не проводиться консультаціями та не оновлюється до тих пір, поки відкрита панель інструментів розробника. Таким чином, ви лише тимчасово змушуєте Firefox не кешувати переадресації чи обслуговувати переадресації з кеша, але це може бути достатньо для вашого випадку використання.

Перевірено в Firefox 41. Адаптовано з відповіді Райана Бемроуза на інше запитання.


2

Я повністю розумію, чому корисно кешувати переадресації в 99% ситуацій, але чи все-таки можна відключити таку поведінку?

Ну, якщо ви робите це з точки зору розробки веб-сервера, то очікуючи змінити кеш-пам'ять браузера за будь-яку ціну для ваших потреб "нескінченного налаштування розвитку" - це неправильний спосіб напасти на цього звіра. Коли ви налагоджуєте переадресації веб-сервера, вам потрібно зосередитись на перевірці виводу заголовка, а не на виведенні повного сторінки виводу, який надають браузери.

Тому замість цього я рекомендував би вивчити, як використовувати curlта -Iваріант з командного рядка повертати лише заголовки, що дуже корисно для налагодження переадресацій 301 та 302. З командного рядка. Як пояснено на офіційній curlсторінці чоловіка, такий -Iваріант:

-І / - зав

(HTTP / FTP / FILE) Отримайте лише заголовк HTTP! HTTP-сервери оснащені командою HEAD, яка використовується для отримання нічого, крім заголовка документа. Якщо використовується у файлі FTP або FILE, curl відображає розмір файлу та лише час останньої модифікації.

Наприклад, зробіть a curl -I google.comі вихід буде приблизно таким:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:37:42 GMT
Expires: Mon, 11 May 2015 04:37:42 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

І якщо ви хочете прослідкувати весь ланцюжок переадресації через заголовки, тоді додайте -Lпараметр (aka:) --locationдо такої команди:

curl -I -L google.com

І вихід цієї команди, що слідує за ланцюжком переадресації локації, буде приблизно таким:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: Mon, 11 May 2015 04:48:14 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5

HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=69d90e4d7a0fcbbb:FF=0:TM=1428727694:LM=1428727694:S=1xqS-toEoa5saQ7n; expires=Mon, 10-Apr-2017 04:48:14 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=pkHjv88MsTB_eB1OqqcMm03kTkFNOSaN4ZEiE5iGViEt7AiJWBc6R-0qJ5s1xu3i5Peg5aHOBHyr7n4-oAxyEE2cL_dBPRLYODst0H-Ztfgrf_6LYXXlix9eghSB8Hzc; expires=Sun, 11-Oct-2015 04:48:14 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding

Зверніть увагу на відповідь заголовка HTTP/1.1 301 Moved Permanently, а також Location: http://www.google.com/. Якщо ваша мета веб-розробки полягає в тестуванні таких речей, як правила перезапису Apache та переадресації, curl -Iце найкращий інструмент, який допоможе вам побачити, що робить ваш твір.

І після того, як ці налаштування будуть доопрацьовані та вдосконалені, тоді виконайте остаточний запуск у справжньому браузері, щоб побачити, як це все ожило.


2

У Firefox Firebug під Netвкладкою є опція під назвою "Вимкнути кеш". Я вмикаю це, коли роблю тестування переспрямування, і в іншому випадку це відвертається.

введіть тут опис зображення


1

Перейдіть about:configі встановіть і те, browser.cache.disk.enableі browser.cache.memory.enableзначення false. Це те саме, що перевірити "Вимкнути кеш браузера".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.