Firefox 5 '캐싱'301 리디렉션


92

이 '기능'을 비활성화하는 방법이 있습니까?

예를 들어 http://localhost/foo.html루트 주소에 '301'로 지정한 요청이 있으면 foo.html웹 서버를 완전히 우회하기위한 모든 후속 요청이 있고 ffox 5는 캐시를 확인하고이 URL이 이전에 '301'되었음을 읽은 다음 변경 사항을 확인하지 않고 리디렉션합니다.

foo.html301'ing에서 중단 한 경우,이 문제를 '수정'하기 위해 firefox의 캐시를 지워야합니다.

Chrome, IE 및 이전 버전의 Firefox는이를 수행하지 않습니다.


캐시를 삭제해도이 오류가 해결되지 않습니다 (Firefox 17.0.1, Linux).
콘라드 HOFFNER

2
@kirdie "최근 기록 지우기"대화 상자에서 시간 범위를 "모든 항목"으로 설정하고 "캐시"확인란을 선택했는지 확인합니다. 선택한 시간 범위가 리디렉션 된 URL에 대한 방문보다 최근 인 경우 캐시 항목이 삭제되지 않습니다.
Kelvin 2013 년

13
@kirdie와 같은 문제가있는 모든 사람 : Ctrl + H로 기록을 확인합니다. 그런 다음 사이트를 마우스 오른쪽 버튼으로 클릭하고 "이 사이트의 모든 기록 삭제"(또는 유사한 항목)를 선택합니다. 그것은 나를 위해 해냈습니다.
Lars Nyström 2013 년

4
@ LarsNyström : 웹 앱을 개발하고이 문제에 부딪 혔습니다. 귀하의 제안은 저에게 완벽하게 작동했습니다. FF20.0에서 "Forget about this site"였습니다.
cincodenada

1
301이 " 영구 이동"이라고 부르지 않습니까? 내가 https 만 제공하는 서버가 있고 사람들이 http를 사용하여 내 도메인 이름으로 이동하는 경우 (요청 uri를 공개 할 것이기 때문에 충분히 나쁘다) 브라우저가 기억하기를 바랍니다. 이 영구적 이 아니라 모든 시간을 확인 HTTP.

답변:


45

301은 일반적인 캐시 가능한 응답 코드입니다. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2 내용 :

This response is cacheable unless indicated otherwise. 

따라서 캐시를 원하지 않는 경우 서버는 캐시 동작을 제어하는 ​​데 사용되는 일반 헤더를 통해 다르게 표시해야합니다.

캐시를 수동으로 지울 수도 있습니다 .


7
대신 기본적으로 캐시 할 수없는 302를 사용하는 것이 더 간단 할 것이라고 생각합니다.
Frank Farmer 2011

22
@Boris Zbarsky : 질문은 '처음에 캐시 쓰기가 발생하지 않도록 방지하는 방법'보다는 '캐시를 지우는 방법'에 더 가깝지 않습니까?
Bobby Jack

4
질문은 "캐시를 지우지 않으려면 어떻게해야합니까?"와 같았습니다.
Boris Zbarsky

17
그것이 잘못되었다는 것을 알고 있더라도 리디렉션을 "시프트 새로 고침"할 수 없기 때문에 짜증납니다. 캐시 된 다른 모든 리소스는 개별적으로 다시로드 할 수 있지만 이러한 리디렉션은 불가능합니다.
Sam Watkins 2012 년

1
IIS에서 302 리디렉션을 사용해 보았지만 최신 버전의 Firefox (및 Chrome 및 Edge 및 IE)는 동작을 고려하여 이러한 리디렉션도 캐시합니다. 개인 창을 열고 종료하는 것이 웹 사이트를 테스트하고 브라우저 캐시를 손상시키지 않는 가장 좋은 방법이라는 것을 알았습니다.
dsmtoday

117

Firefox에서 "웹 개발자"도구 모음 애드온이있는 경우. 비활성화-> 캐시 비활성화-> 매번 페이지의 새 버전 확인을 클릭 할 수 있습니다. 그런 다음 URL을 다시로드하면 캐시가 새로 고쳐집니다. 따라서 전체 캐시를 지울 필요가 없습니다.

cptstubing06의 의견에서 다음은 캐시를 지우는 데 도움이 될 수 있습니다.

  1. Ctrl+l위치 표시 줄에 커서를 놓으려면 입력 합니다.
  2. 구성 설정about:config 을 열려면 입력 하십시오 .
  3. 경고를 확인하십시오.
  4. 설정을 필터링하려면 browser.cache뒤에 입력 Enter하십시오.
  5. 을 두 번 클릭 browser.cache.check_doc_frequency합니다.
  6. 값을에서 3로 변경하십시오 1.
  7. 를 클릭하십시오 OK.
  8. 강박 적으로 캐시 된 301 페이지를 다시 방문하십시오.
  9. 완료되면 주파수를 다시 3으로 재설정하십시오.

Firefox는 이제 새 301 페이지로 리디렉션되어야하며 더 이상 캐시에서 리디렉션 된 페이지를 가져 오지 않습니다.


4
이것은 저에게 훌륭한 솔루션입니다. 99 %의 시간 동안 캐시 된 301을 하지만 파란색으로 표시되면 리디렉션 위치를 변경해야 할 수 있으며 전체 캐시를 지우고 싶지 않습니다. 명확히하기 위해 Firefox에는 Web Developer도구 아래에 애드온이 아닌 자체 메뉴가 있습니다. 이 애드온은이라고도 Web Developer하지만 도구 메뉴에 다음 Web Developer Extension과 같이 표시되며 여기에서 다운로드 할 수 있습니다. addons.mozilla.org/en-us/firefox/addon/web-developer .
cptstubing06 2013

5
참고-Firefox가 리디렉션 된 URL에 대한 캐시 를 업데이트 하도록하려면 Web Developer Extension을 사용하여 Firefox의 변경 동작을 일시적으로 제어하여 항상 새 버전을 확인한 다음 일반 설정으로 다시 설정할 수 있습니다. 이것은 Web Develoepr Extension-> Disable-> Disable Cache-> Check for Newer Version of Page-> Check For Newer Version of Page Every Time 아래에 있습니다.
cptstubing06 2013

1
어떤 방법을 선택하든 항상 새 버전을 확인하도록이 설정을 변경 한 다음 캐시 된 리디렉션이있는 URL을로드합니다. 그런 다음 서버에 접속하여 해당 URL에 대한 새로운 응답을 얻고 캐시를 새 응답으로 업데이트합니다. 그런 다음 캐시 확인 빈도를 원래 값으로 다시 설정할 수 있습니다 (기본값은 "페이지가 오래된 경우"이지만 "세션 당 한 번"을 사용하여이 정확한 시나리오가 지금 내 개입없이 처리 될 것입니다).
cptstubing06 2013

@ cptstubing06 그 팁에 감사드립니다! 당신이 전체 캐시를 지우고 싶지 않을 때 이것을 처리하는 가장 좋은 방법으로 찬성 할 수 있도록 솔루션으로 제출했으면 좋겠습니다.
Mercurybullet 2013

참고 DNS over HTTPS로 이것이 예상대로 작동하려면 비활성화해야 할 수도 있습니다 .
user2741287

25

나는 방금이 문제를 경험했고 나에게는 두 가지 문제였다.

이 특정 도메인 이름은 Cloudflare를 통해 라우팅되므로 개발 모드로 설정해야했습니다. Cloudflare가 301 리디렉션을 캐싱했기 때문에 서버에 요청을 보낼 필요가 없다고 생각합니다. 이 단계는 분명히 적용되지 않을 수 있습니다.

그런 다음 도구-> 옵션으로 이동하여 오른쪽 상단의 고급 버튼을 클릭하고 네트워크 탭을 선택한 다음 캐시 된 웹 콘텐츠 섹션에서 지금 지우기를 클릭하여 Firefox 캐시 (버전 11)를 간단히 지 웠습니다. 내 캐시는 이미 0으로 설정되었지만 리디렉션을 중지하려면 지금 지우기 버튼을 클릭해야합니다.

다른 사람이 이것을 확인할 수 있는지 알고 싶습니다.


2
+1. Firefox 캐시를 지우는 것에 대한 귀하의 메모는 Firefox가 업데이트 된 301을 선택하지 않은 특정 URL에 대해 (웹 사이트 소유자가 아닌 사용자 / 클라이언트로서)이 문제를 해결했습니다. 감사.
Jon Schneider

1
이 Firefox 플러그인을 사용하여 캐시 된 리디렉션 만 삭제할 수 있습니다. addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve

9

한 달 이상 캐시 된 오래된 리디렉션을 사용하고 다시 시작한 후 Firefox 26에서 작동하는 솔루션을 찾았습니다.

  1. 기록 메뉴에서 모든 기록 표시를 선택합니다.
  2. 검색에서 캐시 된 리디렉션 문제가있는 도메인을 입력하여 결과 목록을 표시합니다.
  3. 그중 하나를 마우스 오른쪽 버튼으로 클릭하고 "이 사이트에 대해 잊어 버림"을 선택하십시오.

해당 사이트대해서만 캐시 된 모든 페이지, 이미지 및 리디렉션 이 캐시에서 제거됩니다. 이렇게하면 나머지 캐시를 지우지 않고도 개발 웹 사이트의 리디렉션을 지울 수 있습니다.

참고로 Firefox는 최대 며칠 동안 만 리디렉션을 캐시해야한다고 생각합니다. 한 달 이상 캐싱하면 간단한 실수가 큰 문제가 될 수 있습니다.


2
이것은 작동하지만 "이 사이트에 대해 잊어 버림"은 URL 기록 (자동 완성을 위해)과 전체 도메인에 대해 저장된 비밀번호도 잊어 버립니다. 당신이 원하는 것이 아닐 수도 있습니다.
tanius

5

한 가지 빠른 해결 방법은 개인 브라우저 창을 사용하는 것입니다.


그것은 내 빠른 수정이며 때로는 URL 끝에 물음표를 추가하면 트릭을 수행 할 수 있습니다.
johnsnails

5

최신 버전의 Firefox에 내장 된 개발자 도구에는 이에 대한 해결책이 있습니다. 먼저 개발 창이 열리면 캐싱을 끕니다.

  • 아무 페이지에서나 F12눌러 개발자 도구를 불러옵니다.
  • 맨 오른쪽에서 톱니 바퀴 아이콘 "도구 상자 옵션"을 클릭합니다.
  • 아래에서 Advanced Settings옵션을 선택Disable Cache (when toolbox is open)

이제 캐시 된 페이지를 강제로 새로 고치고 싶을 때마다 F12 dev 도구 상자를 연 상태로 페이지를로드 / 새로 고침합니다. Firefox는 캐시를 우회하고 서버에서 새로운 데이터를 가져옵니다.

이 방법은 브라우저가 "일반적인"비디 버그 브라우징에 대해 작동하는 방식을 변경하지 않기 때문에 선호하며 전역 설정을 원래 값으로 복원하는 것을 잊을 위험이 없습니다.

Firefox 39에서 확인 됨


1
캐시 된 리디렉션에는 도움이되지 않습니다.
SuperDuck 2017 년

3

301은 영구적으로 이동했음을 나타냅니다. 따라서 응답을 캐시하는 것이 합리적이라고 생각합니다.

cache-controlexpires헤더를 설정해 보셨습니까 ?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9


3
때때로 우리는 서버를 개발 또는 마이그레이션하거나 결함을 추적하고 있으며 실제로 방해가 될 수 있으므로이 기능을 해제해야합니다.
Jason

2

Firefox 버전 38.0

Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now

나를 위해 일했습니다.


1

301 은 영구 이동을 의미하고 캐시 할 수 있으므로 브라우저에 "올바른"동작이라고 생각합니다. 303 See Other를 사용해야합니다 .


5
IE 및 Chrome 캐시 303 및 HTTP 사양이 캐시를 허용하도록 변경 중입니다. tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 에서 초안을 참조하세요 . 따라서 리디렉션 캐싱을 방지하는 유일한 안전한 방법은 명시 적 캐시 제어 헤더를 설정하는 것입니다.
Boris Zbarsky 2011-08-08
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.