2016-11-04 7 views
0

HTTP 상태 코드를 사용하여 특정 오류 상태를 클라이언트에 알리고 자합니다.416과 같은 HTTP 상태 코드를 다시 사용할 수 있습니까?

가장 가까운 서비스는 "416 Range Not Satisfiable"입니다. 서비스는 파일에서 바이트 범위를 제공하는 것과 아무 관련이 없습니다.

"Range Not Satisfiable"의 의미를 자유롭게 해석 할 수 있습니까? 아니면 파일의 바이트 범위와 관련된 기술적 정의를 존중해야합니까?

+0

일반적인 "잘못된 요청"상태 코드를 사용하고 응답 본문 (또는 오류 메시지 줄)에 세부 정보를 포함하는 것이 좋습니다. – Thilo

답변

1

은 자유롭게 해석합니다. 그러나 그것이 올바른 일이되지는 않습니다.

일반적으로 현재 4xx 집합으로 처리되지 않은 오류는 더 일반적인 이유를 설명하는 추가 400 오류를 사용합니다. 일반적인 규칙은 오류가 특정 코드와 정확히 일치하는 경우 사용하고 그렇지 않으면 덜 구체적인 코드를 사용한다는 것입니다.

특정 코드의 의미가 과부하되면 대량 혼동이 발생할 수 있습니다.

RFC7231, section 6.5 당으로

(내 이탤릭체) :

4XX (클라이언트 오류) 상태 코드 클래스는 클라이언트가 에러를 발생한 것처럼 보일 것을 나타냅니다. HEAD 요청에 응답 할 때를 제외하고 서버 은 오류 상황 설명 인과 일시적 또는 영구적 조건인지 여부를 나타내는 표현을 보내야합니다 (SHOULD). 이 상태 코드는 모든 요청 방법에 적용 할 수 있습니다. 사용자 에이전트는 포함 된 모든 표현을 사용자에게 표시해야한다 (SHOULD).

+0

문제는 프록시 시리즈, API 게이트웨이 등이 많은 경우입니다. 다른 이유로 400 가지 코드를 다양한 표현으로 반환 할 수 있습니다. 클라이언트가 응답을 해석하기 쉽게하기 위해 주어진 URL에 대해 내 서비스에서 온 것으로 가정 할 수있는 상태 코드를 사용하고 싶습니다. – aaa90210

+1

@ aaa90210, 그렇다면 IETF에 가입하여 '코딩 노력을 최소화하기위한 aaa90210을위한 특정 코드 499 :-)'를 추가하도록 설득 해주십시오 .- 그 밖의 다른 것들은 표준을 위반할 것입니다. (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). 코드 또는 사용자가 쉽게 해석 할 수있는 * 매우 * 특정 메시지를 응답 본문에 삽입하는 것은 간단합니다 (예 : 'ERR314159 - no peeking allowed'). – paxdiablo

+0

Seconded. 웹에서 만나십시오. RFC 7233을 참조하십시오. – VoiceOfUnreason