2013-05-13 3 views
4

오늘 공동 작업자는 사용자가 권한이 없기 때문에 삭제 동작에서 550 오류를 사용했는데, 처음에는 나에게 나쁜 것으로 보였으므로, 나는 약간의 오류가 클라이언트 (일명 4xx) 오류 나에게 서버가 아니라 (일명 5xx).HTTP 오류 코드의 올바른 사용. 550 - 왜 4xx 대신 5xx입니까?

설명을 보면 올바르게 사용되었다는 의미입니다. 401 오류 대신에 이전에 '문제'를 사용하고있었습니다.

401 오류의 문제점 : 사용자 A가 로그인되어 있고 401을 반환하는 동작을 시도하면 해당 http 리소스에 액세스하기위한 유효한 자격 증명이 없기 때문에 '로그인'해야한다고 제안 할 수 있습니다. 이 접근 방식의 문제점은 사용자가 로그인하면 서버에 권한이 없다는 것을 알게됩니다.이 경우에는 550처럼 보이지만 더 이상 적절하지는 않습니다.이 경우 550 오류를 사용해야합니다. 대본.

질문 :웹 기반 응용 프로그램에서 550 오류의 적절한 사용 (있는 경우)은 무엇입니까? FTP 및 SMTP 릴레이 사용에 대한 이해가 있습니다. 일부 사용자가 로그인 한 경우 허용되지 않는 작업 요청을 보내면 어떤 오류가 반환됩니까?

감사합니다.

답변

7

5xx 오류는 SERVER 오류입니다. 사용자에게 권한이 없으면 4XX 오류가 발생합니다.

하지만 맞습니다. 401 오류는 사용자가 액세스하려면 로그인해야한다는 것을 의미합니다. 즉 인증이 요구된다.

당신이 찾고있는 오류는 (403)이 아무런 모호함이없는

금지 여부는 사용자가 로그인에 관계 때문이다. 그것의 명확한 커트. HTTP 오류 코드에 대한 위키 (http://en.wikipedia.org/wiki/List_of_HTTP_status_codes) (강조 광산)에서

:

403 요청이 유효한 요청했다

을 금지하지만, 서버는에 응답을 거부한다 . [2] 401 Unauthorized 응답과 달리 인증을하면 에 아무런 차이가 없습니다. [2] 인증이 필요한 서버에서이 은 제공된 자격 증명이 성공적으로 인증 된 으로 인증되었지만 자격 증명이 여전히 클라이언트에 제한된 콘텐츠에 액세스하기 위해 시도를하는 승인 된 사용자 등의 리소스에 액세스 할 수있는 권한을 부여하지 않음을 의미합니다.

다시 위의 위키에 따르면 550 오류는 없습니다. 당신이 직접 구현할 수도 있지만, 정직 할 필요는 없을 것입니다. 그러나 표준에 정의 된대로 서버 오류 여야합니다.