[asp.net-mvc] ASP.NET MVC의 Redirect () 대 RedirectPermanent ()

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.


답변

RedirectPermanent301이고 Redirect302 상태 코드입니다.


답변

브라우저에 다른 응답 코드를 보냅니다. 301은 영구 리디렉션이고 302는 임시 리디렉션입니다. 최종 효과는 동일하지만 클라이언트가 링크를 인덱싱하려는 경우 (이 작업을 수행하는 가장 일반적인 클라이언트는 검색 엔진이 됨) 영구 리디렉션은 클라이언트에게 이전 링크를 무시하고 새 링크를 사용하도록 레코드를 업데이트하도록 지시합니다. . 임시 리디렉션은 클라이언트에게 페이지가 현재 리디렉션 중임을 알리지 만 인덱싱 데이터베이스에서 이전 링크를 삭제하지는 않습니다.


답변