[http] “항목을 찾을 수 없음”오류 페이지에 가장 적합한 HTTP 상태 코드는 무엇입니까?

“항목이 존재하지 않습니다”페이지에 가장 적합한 HTTP 상태 코드가 무엇인지 궁금합니다.

페이지 자체가 존재하지 않는 경우에는 분명히 404를 사용하겠습니다. 그러나 내 페이지 중 하나에 userid인수 ( “사용자 편집”페이지)가 있고 지정된 사용자 ID를 가진 사용자가없는 경우에는 오류 페이지이지만 4xx 상태 헤더도 보내고 싶습니다 ( “200 OK”가 실제로 맞지 않기 때문에).

404는 “찾을 수 없음”이고 “파일을 찾을 수 없음”이 아니기 때문에 괜찮을 것 같지만이 경우에 더 나은 코드가 있는지 궁금합니다.



답변

모호한 HTTP 오류 코드로 지나치게 영리 해지는 것은 나쁜 생각입니다. 브라우저는 때때로 상황을 혼란스럽게하는 도움이되지 않는 방식으로 반응합니다. 404를 고수하십시오.


답변

404 리턴 코드는 실제로 ‘리소스를 찾을 수 없음’을 의미하며 요청이 이루어졌지만 충족되지 않은 모든 엔티티에 적용됩니다. 따라서 페이지, 페이지의 하위 섹션 및 렌더링 할 특정 요청이있는 페이지에있는 모든 항목에 대해 동일하게 작동합니다.

따라서 404는이 시나리오에서 사용할 올바른 코드입니다. 이 점에 유의 하지 않습니다 에 적용 요청이 발행하지만 대답을하지만, 요청 된 자원없이 반대, 전혀 대답하지 않은있는 다른 상황 인, ‘서버를 찾을 수 없음’.


답변


답변

이는 사용자 ID가 리소스 식별자인지 또는 추가 매개 변수인지에 따라 다릅니다. 그렇다면 404를 반환해도 괜찮습니다. 그렇지 않으면 다음과 같은 다른 코드를 반환 할 수 있습니다.

400 (bad request) ‐ indicates a bad request
또는
412 (Precondition Failed) e.g. conflict by performing conditional update

무료 InfoQ Explores : REST 책에 대한 추가 정보 .


답변