HTTP 406 및 415 오류 코드
json 만 받아들이고 json 만 출력하는 웹 서비스를 작성 중입니다.
따라서 다른 형식이 요청되면 적절한 상태 코드를 반환해야합니다.
두 가지 선택이있는 것 같습니다.
- 406-허용되지 않음
- 415-지원되지 않는 미디어 유형
누군가가 두 코드의 의미에 대해 나를 깨달을 수 있다면 좋을 것입니다.
406은 요청 헤더를 수락하여 응답 할 수 없을 때 서버에 의해 반환됩니다 (즉, XML 만 원한다고 말하는 Accept 헤더가 있음 ).
415는 요청에서 보낸 엔티티 (POST 또는 PUT의 콘텐츠)가 지원되지 않는 미디어 유형 (즉, XML을 보냄)을 가질 때 서버에 의해 반환됩니다.
그래서 .. 406은 그들이 원하는 것을 보낼 수 없을 때, 415는 당신이 원하지 않는 것을 보낼 때.
도움이 되었기를 바랍니다.
- 406
Accept
헤더가 전송 된 경우 채울 수 없습니다. - 415를
Content-Type
보내면 사용할 수 없습니다.
RFC2616 견적 :
406 허용되지 않음
요청에 의해 식별 된 리소스는 요청에서 전송 된 수락 헤더에 따라 허용되지 않는 콘텐츠 특성을 가진 응답 엔티티 만 생성 할 수 있습니다.
클라이언트가 서비스를 쿼리 할 때 어떤 Accept*
헤더를 보냈 는지 확인하십시오 . 일치하지 않는 경우 application/json
(또는 예를 들어 와일드 카드 */*
)이를 반환합니다. 응답은 "여기서는 JSON 만 제공합니다."라고 표시되어야합니다.
415 지원되지 않는 미디어 유형
요청 엔터티가 요청 된 메서드에 대해 요청 된 리소스에서 지원하지 않는 형식이므로 서버가 요청 서비스를 거부합니다.
반환 415 Unsupported Media Type
은 "클라이언트가 JSON이 아닌 무언가를 보냈고 그와 함께 작동 할 수 없습니다"에 대한 최소한의 응답이어야합니다. "JSON을 보내야 함"을 나타내는 헤더가 있는지 확실하지 않습니다.
406은 클라이언트가 Accept 헤더를 사용하여 지원되지 않는 콘텐츠 유형 (귀하의 경우 JSON이 아닌)으로 응답을 요청할 때 사용됩니다. 반면에 415는 클라이언트가 지원되지 않는 콘텐츠 유형의 데이터를 POST하거나 PUT 할 때 사용됩니다.
요컨대 : 예상 형식으로 출력 할 수 없으면 406을 사용하고 입력 형식을 지원하지 않으면 415를 사용합니다.
정의는 RFC 2616을 참조하십시오. 406 및 415
RFC2616이 도움이됩니다!
http://www.rfc2616.com/#10.4.7
http://www.rfc2616.com/#10.4.16
나는 415를 선택하고 당신의 설명에 아주 잘 어울립니다.
편집 : 오. IC. " 요청 엔티티가 요청 된 리소스에서 지원하지 않는 형식입니다." 따라서 콘텐츠가 포함 된 요청이 있고 해당 콘텐츠의 유형이 잘못된 경우 415 응답을 던져야합니다.
참고 URL : https://stackoverflow.com/questions/3294483/http-406-and-415-error-codes
'Nice programing' 카테고리의 다른 글
lodash : 객체에 배열 매핑 (0) | 2020.11.29 |
---|---|
srand를 초기화하는 권장 방법? (0) | 2020.11.29 |
git에서 서로 다른 디렉토리 계층을 가진 두 가지 분기를 병합하는 방법은 무엇입니까? (0) | 2020.11.29 |
PHP에서 세션과 쿠키의 차이점은 무엇입니까? (0) | 2020.11.29 |
Django post_save () 신호 구현 (0) | 2020.11.29 |