Redirect()
과의 차이점은 무엇입니까 RedirectPermanent()
? 기사를 몇 개 읽었지만 언제 Redirect()
와 RedirectPermanent()
. 몇 가지 예를 보여줄 수 있습니까?
답변:
이 둘의 기본적인 차이점 RedirectPermanent
은 브라우저에 HTTP 301
(영구 이동) 상태 코드 Redirect
를 보내는 반면 상태 코드 는 보내는 것 HTTP 302
입니다.
RedirectPermanent
리소스가 영구적으로 이동되어 더 이상 이전 위치에서 액세스 할 수없는 경우 사용 합니다. 대부분의 브라우저는이 응답을 캐시하고 원래 리소스를 다시 요청하지 않고 자동으로 리디렉션을 수행합니다.
Redirect
향후 동일한 위치 (URL)에서 리소스를 사용할 수있는 경우 사용 합니다.
예
시스템에 사용자가 있다고 가정 해 보겠습니다. 기존 사용자를 삭제할 수도 있습니다. 웹 사이트에는 /user/{userid}
특정 사용자의 세부 정보를 표시 하는 리소스 가 있습니다. 사용자가 삭제 된 경우 /user/does-not-exist
페이지로 리디렉션해야합니다 . 이 경우 :
사용자가 다시 복원 되지 않는 경우 URL이 다음을 가리키는 경우에도 RedirectPermanent
브라우저가 /user/does-not-exist
후속 요청에서 직접 이동할 수 있도록 을 사용해야 합니다./user/{userid}
.
사용자가 나중에 복원 될 수있는 경우 일반 Redirect
.
RedirectPermanent
두 번째는 당신이 클릭하기 때문에 디버깅하는 동안 성가신 될 수는 컨트롤러의 액션은 건너 뛰고 다른 곳에서 리디렉션 경우에는 브레이크 포인트는 원래 함수에 도달하지 않습니다. 클릭 할 때마다 캐시를 비우지 않는 한 그렇습니다.
RedirectPermanent
301이고 Redirect
302 상태 코드입니다.