Chrome에서 리디렉션 캐싱을 중지하려면 어떻게해야하나요?


415

redirects(예쁜 URL을 위해 ) 사용하는 웹 응용 프로그램에서 작업하고 있습니다.

리디렉션이 작동하는 방식으로 논리를 디버깅하려고합니다. 그러나 Chrome은 리디렉션을 기억하며 코드를 변경 한 후에도 동일한 방식으로 리디렉션합니다.

이로 인해 문제를 해결하기가 매우 어렵습니다.

예를 들어로 리디렉션 /this하면 더 이상 /that리디렉션되지 않도록 코드를 변경하십시오 /this. Chrome이 여전히 (으)로 리디렉션 중 /that입니다. 리디렉션이 캐시 된 것과 같은 것 이것을 끄는 방법이 있습니까?


다시 시작할 때 이런 일이 계속 발생합니까? 새로운 세션으로 다시 시작한 후 중지해야합니다
임의

1
@random, 크롬을 다시 시작하면 문제가 해결되는 것 같습니다. 그러나 일반적으로 많은 창이 열려 있습니다 (예 : 문서, DB 연결, 자습서, 작업중 인 페이지 등). 문제를 해결하는 경우 문제를 파악하기 전에 여러 번 시도해야 할 수 있습니다. 나는 모든 창문을 계속 닫는 것이 이상적이라고 생각하지 않을 것입니다. 감사.
JD Isaacks 2016 년

2
해결 방법 : 테스트하는 동안 302 (임시) 리디렉션을 사용하고 완료되면 301 (영구)로 전환하십시오. (주의 : 일부 브라우저 (Firefox)는 http에서 같은 페이지의 https 버전으로 갈 때 302 리디렉션을 캐시합니다.)
TRiG

1
www.mywebsite/?someparam=somevalue나를 위해 새로운 작품을 입력
Mustafa

1
@JDIsaacks 디버깅 전용으로 Chrome을 사용할 수 있습니다 (예 : Chrome Canary)
athosbr99

답변:


329

Chrome은 301 리디렉션캐시합니다 . 이 문제를 해결하고 탭을 열어 두려면 브라우저 캐시를 지우면됩니다.

Chrome 메뉴 크롬 메뉴> 설정> 고급 설정 표시 ...> 개인 정보 보호> 인터넷 사용 정보 삭제 ...를 클릭 합니다.

무엇을 선택하든 "캐시 된 이미지 및 파일"이 선택되어 있는지 확인하십시오.

그런 다음 인터넷 사용 정보 삭제를 클릭 하면 다시 테스트 할 수 있습니다.

리디렉션을 방금 수행 한 경우 지난 1 시간 동안의 데이터 만 삭제하면됩니다.

또는 시크릿 모드에서 테스트하고 개발하십시오. 브라우저가 닫힌 후 캐시가 플러시됩니다.


3
최신 크롬 버전 인 경우이 옵션은 "캐시 비우기"대신 "캐시 된 이미지 및 파일"
Dan R

23
시크릿 모드에서도 계속 리디렉션됩니다.
Gaia

2
@Gaia 님, Chrome 시크릿에서 문제가되는 것 같습니다. 테스트 중이라면 Firefox를 사용하는 것이 좋습니다. Firefox 개인 브라우징이
제대로

10
HTTP 301은 영구적 으로 이동 되므로 응답 캐싱이 완벽하게 허용됩니다. 응답을 캐시하지 않으려면 302 또는 307을 시도하십시오. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
CVn

7
이에 대한 키보드 단축키는 Ctrl+ Shift+ Delete입니다.
0xcaff

151

이는 모든 인터넷 사용 정보 (현재 최고 답변에서 사용 된 방법) 를 지우지 않고 리디렉션을 위해 Chrome의 고정 메모리를 지우는 확실한 방법입니다.

  1. Mac 또는 Windows 에서 개발자 도구 패널을 엽니 다.optioncommandictrlshifti

  2. 새로 고침 아이콘을 클릭 한 상태로 유지 여기에 이미지 설명을 입력하십시오

  3. 메뉴가 열립니다

    여기에 이미지 설명을 입력하십시오

  4. 이 메뉴에서 세 번째 옵션을 선택하십시오 ( "빈 캐시 및 하드 다시로드")

이 세 가지 옵션이 어떻게 다른지에 대한 훌륭한 설명 이 있습니다 .

추신 : 리디렉션 다음에 Chrome이 올 때 마다이 단계를 수행하지 않으려면 DevTools에서 캐시 비활성화를 확인하고 DevTools가 열려있는 동안 Chrome은 리디렉션 캐시를 무시합니다 ( 이 답변 당 )


1
제쳐두고 : 이것은 Mac에서 사용할 수 없습니다.
Arjan

5
이 캐시 된 리디렉션을 항상 삭제하지는 않습니다
Claudiu Creanga

7
Mac에서는 사용할 수 있지만 개발 도구가 열려있는 경우에만 메뉴를 사용할 수 있습니다. 나는 이것이 Windows에서 동일하다고 가정합니다.
Percy

1
@Arjan 그것은 Mac에서 사용할 수 있습니다 superuser.com/questions/304589/…
Gaia

4
Mac OS X, 요세미티 https를 https로 리디렉션하기 위해 http와 싸우면서이 옵션 만 작동했습니다. "캐시 비활성화 (DevTools가 열려있는 동안)"를 포함한 다른 모든 것에는 차이가 없었습니다.
Carles Sala

115

완벽한 솔루션은 아니지만 가짜 쿼리 문자열을 전달하거나 기존 쿼리 문자열에 가짜 매개 변수를 추가하여 Chrome이 캐시 된 리디렉션을 사용하지 못하게 할 수있었습니다. 예를 들어 ?q 쿼리 문자열이없는 URL 끝에 간단한 것을 추가하면 Max OS X의 Chrome 30에서 효과적이었습니다.


10
그렇습니다. example.com됩니다 example.com?.
나는

2
이것은 놀라운 속임수입니다. 나는 당신이 무기한이 사용할 수 있습니다 가정 ?abc, ?abc2... 등
brentonstrine

2
이것은 나를 위해 작동하지 않았습니다. 다른 포트 (: 8080)를 사용하더라도 Chrome 버그처럼 보이는 https로 변경되었습니다.
jwadsack 2019

이미 동일한 작업을 수행하고 있지만 항상 작동하지는 않습니다. 때때로 ctrl + shift + r (ctrl + f5)을 눌러 최신 버전의 웹 페이지 또는 페이지에 포함 된 부분 페이지를
가져와야

301 캐시 된 와일드 카드가 있으면 TLD 이후의 모든 내용을 "기억"하기 때문에 작동하지 않을 수 있습니다.
dhaupin

92

이에 대한 "wontfix"Chromium 버그가 있습니다 .

이것이 예상되는 동작입니다.

참고 :

  1. 캐시 제어 헤더를 301에 추가하면 다음과 같이 수행됩니다 (만료 등).
  2. 해당 리소스가 하위 리소스 인 경우 페이지를 다시로드하면 서버에서 리디렉션이 다시 확인됩니다.
  3. 전체 캐시를 잃어 버릴 필요는 없습니다. 리디렉션을 따라 지난 시간을 삭제하십시오.

"마지막 시간 삭제"는 무엇입니까? 방법? 어떻게합니까?
Mikaël Mayer 2016 년

1
@ MikaëlMayer "내역> 인터넷 사용 기록 삭제"를 클릭하면 데이터를 제거 할 기간 ( "지난 시간", "지난 주"등)을 선택할 수 있습니다.
dbr

아니..! 사이트의 브라우징 데이터를 지우 면 301 리디렉션 동작이 제거 되지 않습니다 . 어쨌든 Chromium 64.0.x에는 없음
patricktokeeffe

"1 시간"을 지우면 모든 Google 제품 및 계정에서 로그 아웃됩니다. 좋은 충고 ...
Luciano Fantuzzi

> 전체 캐시를 잃어 버릴 필요는 없습니다. 리디렉션을 따라 지난 시간을 삭제하십시오. 여전히 수정하지 않은 기능인 "마지막 리디렉션 삭제"보다 더 나쁩니다.
rox0r

66

DevTools에서 "캐시 비활성화 (DevTools가 열려있는 동안)"옵션을 활성화 한 경우 세션을 계속 버리지 않고 DevTools를 열어두면 리디렉션 캐시를 무시할 수 있습니다.


9
DevTools로가 열려있는 경우, 캐시를 삭제하는 빠른 방법이있다 : 참고 : 마우스 오른쪽 버튼을 클릭하여 새로 고침 버튼을 클릭하고 전체 다시로드를 선택;)
user65130

5
이것은 항상 작동하지 않습니다. 캐시를 모두 삭제했지만 여전히 리디렉션 중입니다. 시크릿 모드에서만 작동하며 일관된 동작이 나타납니다.
Claudiu Creanga

2
이것이 최고의 솔루션이 아닌 이유는 무엇입니까? 다른 사람들은 비교하면 끔찍합니다!
Brian

4
더 이상 작동하지 않습니다. 아마도 2014 년에 일했을 것입니다
로드 Loh.

@LordLoh. 방금 최신 버전의 Chrome 에서이 작업을 시도했으며 예상대로 정확하게 작동했습니다. devtools가 닫히면 리디렉션이 캐시됩니다. 도구를 연 상태에서 페이지를 다시로드해도 리디렉션되지 않습니다.
Mike Gossmann

20

Chrome은 HTTP 리디렉션을 캐시하고 리디렉션이 변경된 경우 사이트 확인을 중지합니다. 링크를 액세스하기 전에 리디렉션이 발생하기 때문에 사이트를 방문하고 강제로 새로 고침을 수행하는 가장 쉬운 방법은 사용할 수 없기 때문에이 방법은 실망 스러울 수 있습니다. 이 문제는 해결되지 않습니다 .

이 문제를 해결하려면 여기에 설명 된대로 인터넷 사용 기록을 지우 거나 아래 단계를 수행하여 기록을 잃지 않도록 할 수 있습니다.

  1. Chrome 개발자 도구를 엽니 다 개발 도구

  2. 설정을 클릭하십시오 설정

  3. 캐시 비활성화 확인 (DevTools가 열려있는 동안) 비활성화

  4. 원하는 사이트를 방문하면 캐시 문제가 해결됩니다.


2
네트워크 탭에도 "캐시 비활성화"옵션이 있습니다. 동일한 옵션입니다. 리디렉션을 디버깅하려면 "preserve log"도 사용하는 것이 좋습니다.
Trendfischer

15

chrome : // net-internals로 이동하여 맨 오른쪽에서 드롭 다운을 열고 "캐시 지우기"를 선택하십시오. 버전 48부터는 캐시 된 301 (영구적 리디렉션)을 지우는 데 도움이 된 유일한 방법이었습니다.

업데이트 : 불행히도, 버전 71 (2018 년 12 월) 현재 Google은 net-internals 기능을 제거했습니다.


1
Chrome 56에서 작동
spencer.sm

Chrome 67에서 계속 작동
SCO

Chrome 71에서는 작동하지 않습니다. 인터넷 내부 이벤트 뷰어 및 관련 기능이 제거되었습니다.
userlond

8

.dev 도메인은 Chrome 63 이상에서 HTTPS를 사용해야합니다.

2017 년 12 월 Chrome 63 이후 .dev (및 .foo)로 끝나는 모든 도메인은 사전로드 된 HSTS (HTTP Strict Transport Security) 헤더를 통해 HTTPS를 사용해야합니다.

여기에 더 많은 것 : https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


이것은 확실히 내 범인이었습니다! 나는 도대체 무슨 일이 일어나고 있는지 알아 내려고 노력하고 있습니다. 이것을 게시 해 주셔서 감사합니다!
Jabari

이 답변에는 더 많은 투표가 필요합니다. 질문자가 가진 문제는 아니지만 검색 결과에서이 답변을 찾는 많은 개발자들에게는 문제가 될 것입니다.
bp.

하느님! 누가 그런 훌륭한 아이디어를 생각해 냈을까요!
Pavel Niedoba

7

Chrome에서 단일 페이지의 리디렉션 캐시를 지우려면 소스 를보고 강제로 새로 고침 (CTRL + SHIFT + R)하세요.

이것은 소스 브라우저가 301 리디렉션을 자동으로 따르지 않기 때문에 작동합니다.


4
Chrome 25에서 나를 위해 작동하지 않았습니다
swrobel

3
리디렉션이 모든 페이지에 대한 경우에는 작동하지 않습니다 . www가 있습니다. -> 아니 www. 리디렉션-리디렉션이 첫 번째 히트에 있으므로 아무것도 새로 고칠 수 없습니다. 페이지를 새로 고치려고 할 때마다 301을 따릅니다. 너무 늦었습니다!
Ian Grainger

1
@Ian 주소 표시 줄에 입력하면 어떻게됩니까? view-source : www.example.com? 리디렉션되지 않고 새로 고칠 수 있습니까?
Matthew Blackford

1
@MatthewBlackford AFAICT도 마찬가지입니다. 실제로 리디렉션 된 페이지의 소스를 얻습니다. TBH를 통해 내 테스트가 그렇게 훌륭하지는 않았습니다. 이 문제를 '수정'하기 위해 인터넷 사용 기록을 삭제했습니다.
Ian Grainger

2
이것은 자바 스크립트 및 메타 태그 리디렉션에만 작동합니다. HTTP 리디렉션은 여전히 ​​따라
fregante

6

여기에 설명 된대로 HSTS로 인해 발생할 수 있습니다

이 문제를 해결하기 위해 다음을 수행했습니다.

Chrome 주소 표시 줄에 "chrome : // net-internals / # hsts"를 입력하십시오. 페이지 맨 아래에는 QUERY 도메인 텍스트 상자가 있습니다-귀하의 사이트 (예 : localhost)가 브라우저에 알려져 있는지 확인하십시오.있는 경우, localhost를 삭제하십시오 위의 텍스트 상자를 사용하는 도메인 이제 사이트는 일반 HTTP를 사용하여 작동합니다


1
고마워 이것은 갑자기 https가 캐시를 리디렉션하는 데 도움이됩니다.
Ruberoid

5

Chrome 또는 Firefox에서 "view-source : redirect.yoursite.com"을 입력하고 Enter 키를 눌러 리디렉션을 새로 고칠 수 있습니다. 그런 다음 해당 페이지를 새로 고치십시오. 이제 Chrome 또는 Firefox에서 리디렉션을 새로 고침해야합니다.


이것은 나를 위해 일한 유일한 대답입니다.
JaredThirsk

4

리디렉션이 예상대로 작동하는지 확인하려면 wget 또는 이와 유사한 명령 줄 도구를 사용하는 것이 더 쉽습니다. 응답 헤더를 검사 할 수 있으며 리디렉션이 캐시되지 않습니다.


3

개발 목적으로 Chrome open DevTools 설정에서 "캐시 비활성화"를 확인하는 것이 좋습니다. 그런 다음 30x 리디렉션이 캐시되지 않으며 .htaccess 파일 등을 디버깅 할 수 있습니다! 여기에 이미지 설명을 입력하십시오


이상한 점은이 옵션이 도움이되지 않는다는 것입니다. 캐시를 비활성화했지만 여전히 네트워크 탭에 표시 301 Moved Permanently (from disk cache)됩니다.
mgutt

네트워크 탭이 열린 상태에서 '캐시 비활성화'를 클릭하는 것과 동일합니다. 아니요-리디렉션을 지우지 않습니다.
bshea

1
  1. 이동 chrome://settings/search#clear%20browsing%20data

  2. "인터넷 사용 정보 삭제"를 클릭하십시오

  3. "캐시 된 이미지 및 파일"을 확인하고 원하는 경우 나머지를 선택 해제하십시오.

  4. "인터넷 사용 정보 삭제"를 클릭하십시오

여기에 이미지 설명을 입력하십시오


1

가장 간단한 방법, 하드 새로 고침. 보유 Ctrl+ R몇 초. 이렇게하면 리디렉션 및 정적 리소스가 지워집니다.


단순히 누르는 대신 왜 잡고 Ctrl+R있을까요?
gronostaj

@gronostaj 내 대답이 평범하고 간단하지 않습니까 ?? . 보류하지 않으면 정상적인 새로 고침 일뿐입니다. 캐시 된 리소스 나 리디렉션을 지우지 않습니다.
Ryu_hayabusa

홀딩은 여러 번 누르는 것과 같습니다. 메모장을 열고를 누르면 R여러 개의 R이 나타납니다. 이것은 정확히 동일하지만입니다 Ctrl. 지주 Ctrl+는 R몇 초 동안 초당 그것을 수십 번 눌러의 정확한 동일합니다. 그것은 현명하지 않으며 내장 된 새로 고침 메커니즘을 남용하고 문서화되지 않은 동작에 의존합니다.
gronostaj

@gronostaj 네, 그것은 문서화되지 않은 행동입니다. 수락 된 답변이 저에게 효과적이지 않습니다. 그렇기 때문에 여기에서 공유했습니다. 캐시 된 리디렉션을 지우는 다른 방법이 없습니다. 다른 방법을 알고 있다면 자유롭게 공유하십시오.
Ryu_hayabusa

시도했지만 작동하지 않았습니다 (전체 도메인에서 301 리디렉션).
mgutt

1

전체 캐시를 잃고 싶지 않고 리디렉션이 여전히 캐시에 멈춘 경우 view-source : url 버전을 방문하십시오. 그것은 같은 URL의 리디렉션 캐시를 새로 고쳤습니다.


0

이 페이지에서 모든 답변을 시도했지만 Windows 명령 줄 창에서 flushdns를 실행할 때까지 아무것도 작동하지 않았습니다.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

참고로, 나는 이미 한 Disable cache에서 언급 한 바와 같이 확인 대답.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.