Http status code

ddalkigum·2021년 9월 11일
2
post-thumbnail

Http status code
많이 사용하지만, 어떤 상황에 적절한 것인가에 대해서는 사람마다 다를거라 생각하고,
자기의 스타일에 맞게 혹은 회사의 스타일에 맞게 사용하면 된다

내가 사용해야겠다고 생각한 status에 대해 정리하고,
사용할지 말지 고민했던 status code는 왜 사용하려 했는지,
사용을 안하게된 이유를 정리해야겠다

Success case

200 OK
예외가 없는 request, 혹은 에러가 발생하지 않는 대부분의 경우 200을 사용할것이다

GET, PATCH, DELETE 메서드에서 주로 사용되며
요청이 정상적으로 완료가 되었을 때 사용된다

201 Created
POST 메서드에서 사용하는 status code
유저가 무언가를 생성하는 요청을 할때, 정상적으로 생성이 되었다면 201을 내보내준다

유저의 회원가입이 될수도, 게시판에 글을 작성할 수도 있는 여러 상황에서 새로운 무언가를 생성했다면 201로 내보내준다

204 No Content
이 친구때문에 좀 헷갈렸고, mdn에서 자세히 읽어보니
PUT, DELETE 메서드를 사용하여 요청을 했을 때, 해당하는 데이터가 없는 경우
이미 삭제가 되었거나, 업데이트 할 내용이 없는 경우 204 코드를 사용한다

PUT이 아닌 부분 업데이트에서 사용하는 메서드인 PATCH에서 사용해도 상관 없을 것같다

따라서 GET메서드에서 response해줄 데이터가 없는 경우에는 적절하지 않다

특이한 점은 response body에 값을 담아서 response해주어도 아무 값도 들어가지 않는다

나머지 200번대 코드들중에서는 더 이상 사용할게 없다고 생각되고
추가적으로 필요하다면 202 Accepted정도가 있을 것 같다

Error status

400 Bad Request

HyperText Transfer Protocol (HTTP) 400 Bad Request 응답 상태 코드는
서버가 클라이언트 오류(예: 잘못된 요청 구문, 유효하지 않은 요청 메시지 프레이밍, 
또는 변조된 요청 라우팅) 를 감지해 요청을 처리할 수 없거나, 하지 않는다는 것을 의미합니다.

말이 좀 어렵다

서버에서의 오류가 아닌 요청을 잘못보냇을 경우 사용된다
400이외에 에러코드에서 사용할 코드가 있는 경우가 아니라면 대부분 400으로 내보낸다

간단하게 이런경우 400이다

요청을 보냈지만, 서버에서 필요한 정보를 보내지 않은 경우 (잘못된 요청 구문)

401 Unauthorized, 403 Forbidden
둘은 묶어서 정리하는게 좋을 것 같다

로그인 페이지에서 로그인 실패 -> 401
로그인 성공후 권한이 없는 경우 -> 403 

간단하게 보면 위와 같은 경우이다

401은 유저에 대한 인증이 안된 경우고,
403은 유저에세 권한이 없는 경우다

404 NotFound
인터넷에 돌아다니다 보면 굉장히 많이본 페이지일 것 같다

해당 url이 존재 하지 않는 경우에 사용된다
궁금증에 도메인 뒤에 아무거나 붙여보면서 어떻게 나오나 해보면 not found일 경우
아예 home화면으로 돌아오는 경우도 보인다

200 vs 404

사실 이 글을 쓰게된 이유다
요청에 대한 값이 없을 경우 어떻게 내보내야 할지 고민하던 차에 공부할 겸 찾아봤다

요청을 했지만 요청에 대한 데이터가 없는 경우, 혹은 자원이 없는 경우 두가지로 나뉠것 같다

보통의 경우에는 query string혹은 parameter가 들어왔는지 확인 후 없는 경우 예외처리를 해주게 될텐데, 이런 경우는 해당 자원이 없으므로 404를 내보내주어 자원이 없다고 알리고

id를 보냈지만, 해당 아이디에 대한 데이터가 없는 경우라면 200, result: null 요런식으로
해당 요청에 대한 데이터가 없다고 알리는 것이 좋다고 생각한다

statusCode를 내보내는 기준은 요청에 대한 response를 내보낼 때
요청에 포함된 자원으로 모든 과정이 문제없이 처리가 되었다면 200번대를 내보내야 겠다고 생각했다

참고

mdn: https://developer.mozilla.org/ko/docs/Web/HTTP/Status
200 vs 404: https://brainbackdoor.tistory.com/137

이번에 찾아보면서 statusCode에 대한 글도 많이 봤지만, 가장 눈에 띄었던 글은 200 vs 404였다
어떤 statusCode를 내보내던지 내보낸 이유가 있고, 문서만 잘 정리되어있으면 괜찮을 것같다

profile
딸기검 -본캐🐒 , 김준형 - 현실 본캐 🐒

0개의 댓글