2011-11-12 3 views
3

저는 웹 사이트에서 '테스트 모드'를 구현하고 있습니다. 특정 페이지에 대한 액세스가 금지되어 있으므로 개인 테스트를 위해 관리자 만 액세스 할 수 있습니다. 이 존재하기 때문에 401 상태 코드를 사용할 계획 이었지만 사용이 허용되지 않았거나 인증되지 않았을 수도 있지만 특정 사용자 (기본적으로) 만 여전히 액세스 할 수 있습니다. 페이지.HTTP 상태 코드와 함께 전송 된 텍스트를 수정할 수 있습니까?

제가 궁금한 점은 HTTP/1.1 401 부분 이후의 텍스트가 중요합니다. Unauthorized이되어야합니까? 아니면 기본적으로 401이 여전히 오류에 적합한 한, 기본적으로 원하는대로 지정할 수 있습니까? Temporarily Unavailable과 같은 메시지를 보내 모든 페이지 방문자가 정상적으로 사용할 수 있지만 재구성 중이며 일시적으로 사용할 수 없음을 나타냅니다. 이 작업을 수행해야합니까,하지 않습니까?

+1

해당 텍스트를 변경할 수 있지만 대부분의 사용자는 텍스트를 볼 수 없습니다. 그래픽 브라우저는 HTTP 응답 헤더의 첫 번째 줄에있는 이유 코드가 아닌 응답 본문에 HTML을 표시합니다. 그래서 여러분의 변경은'curl --head' 나'telnet' 같은 것으로 서버를 테스트 할 때만 중요합니다. –

+0

이 경우에는 503을 사용하고 싶습니다. http://stackoverflow.com/a/1701622/39321 – Svish

+0

403을 생각했지만 503은 실제로 더 정확합니다. 401 의미 : 올바른 자격 증명을 제공 한 경우 리소스에 액세스 할 수 있습니다. 예를 들어 암호 또는 일부 보안 토큰이 누락되었습니다. 암호는 도움이되지 않으므로 401은 적합하지 않습니다. '오류 401', '오류 403'및 '오류 503'에 대한 설명입니다. – gnasher729

답변

3

변경할 수 있습니다.

상태 메시지 (기술적으로 "이유 구문"이라고 함)는 권장 사항이며 "프로토콜에 영향을 미치지 않고 변경 될 수 있습니다."

은 여전히 ​​제대로 코드를 사용하고 의미있는 메시지를 제공해야합니다 :-), 그러나 http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1

를 참조하십시오. 당신의 상태가 RFC가 401이라고 말하는 경우에만 401을 사용하십시오.

+0

특히, 401은 "일시적으로 사용할 수 없음"에 대한 올바른 상태가 아닙니다. –

0

텍스트를 변경할 수 있습니다 (일부 http 클라이언트는주의를 기울이지 만). 가장 적합한 응답 코드를 사용하는 것이 좋습니다. Afterall, 실패 이유를 나타내는 것은 다양한 응답 코드가 사용되는 방법입니다.

아마도이 맞아야합니다. 요청한 리소스를 찾을 수 없습니다 찾을 수 없음

404 만 나중에 다시 사용할 수 있습니다 [2] 클라이언트 에 의한 후속 요청은 허용됩니다.

+0

처음에는 403을 생각했지만 인증은 관리자의 경우뿐만 아니라 403 상태에서 '요청을 반복해서는 안됩니다'라는 유일한 일시적인 문제를 해결합니다. 나는 결코 반복해서는 안된다는 것을 의미한다고 생각합니다. 아니? – animuson

+0

다음으로 가야합니다 : 404 찾을 수 없음 요청한 리소스를 찾을 수 없지만 나중에 다시 사용할 수 있습니다. [2] 클라이언트의 후속 요청은 허용됩니다. –

0

예, 이유 구문을 변경할 수 있습니다. 메시지의 의미에는 영향을주지 않습니다.

"일시적으로 사용할 수 없음"이라고 말하면 5xx (서버) 코드로 만들어야합니다. 503이 바로 여기에 있습니다 (RFC 2616, Section 10.5.4 참조).

관련 문제