2016-06-30 2 views
0

나는 ASP.NET 웹 사이트가 있습니다. 사용자는 내 앱의 URL/partners/{partner-id}에 액세스 할 수 있습니다. 해당 URL이 호출되면 다음 두 가지 작업을 수행합니다.HTTP 리디렉션 상태 코드

1) 파트너 ID와 요청한 사용자 ( )를 기록하고 싶습니다. 2) URL을 파트너 웹 사이트로 리디렉션합니다.

제 질문은 어떤 HTTP 상태 코드를 사용해야합니까? 301을 사용하고있었습니다. 그러나 이로 인해 로깅 코드가 건너 뛰는 문제가 발생했습니다. 301은 영구적 인 리디렉션을 나타 내기 때문에 의심됩니다. 그러나, 나는 기본적으로 중간 남자로 남아 있기 때문에 세부 사항을 올바르게 기록합니다.

어떤 HTTP 상태 코드를 사용해야합니까?

감사합니다.

답변

0

여기 살펴보면 :

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

당신은 302 상태 코드를 사용해야합니다. 302 리디렉션에 대한 두 가지 유용한 점 : 방향 재설정은 종종 변경 될 수 있기 때문에

하면, 클라이언트가 미래에 대한 요청-URI를 계속 사용해야 리디렉션 것을 추론에 의해이 말한다

를 요청 클라이언트는 일시적 일 수 있으므로 클라이언트는 기본 동작으로 리디렉션 URI로 이동하지 않고 항상 초기 URI를 확인해야합니다. 즉, 이후 요청에서 리디렉션 된 URI로 직접 이동하지 않고 매번 로깅 시스템을 통과하게됩니다. 또한 302 응답은 다음과 같이 표기합니다.

이 응답은 캐시 제어 또는 만료 헤더 필드로 표시되는 경우에만 캐시 할 수 있습니다.

명시 적으로 지정하지 않는 한 301 리디렉션은 기본적으로 캐시되지만, 302는 명시 적으로 지정하지 않으면 캐시 할 수 없습니다. 그러나 리디렉션에 '캐시하지 않음'헤더를 명시 적으로 추가하면 클라이언트가 기본 사양 동작을 따르지 않는 클라이언트를 보유 할 때를 대비하여 캐시해서는 안된다는 사실을 알릴 수 있습니다. stackoverflow에는 이것에 대한 답변이 많이 있습니다. 여기에는 괜찮은 답변이 있습니다.

How to control web page caching, across all browsers?