CS 과목(CS科目)/네트워크(ネットワーク)

4xx클라이언트 오류, 5xx 서버 오류

JIN_YOUNG _KIM 2024. 12. 26. 15:00

4xx 오류와 5xx 오류의 차이점

4xx 오류 : 재요청을 하더라도 정상 처리 영구히 불가능

-> 클라이언트에서 잘못된 요청을 한 것이기에 아무리 재요청을 한다고 하더라도 처리가 불가(클라이언트에서 수정 후 다

시 재요청을 해야 한다)

5xx 오류 : 재요청을 했을 때 정상 처리가 될 가능성이 있다.

-> 클라이언트에서 요청을 보냈는데 그때 하필 DB 서버에서 장애가 발생을 하였다. 이때에는 정상 처리가 불가능하다. 

그러나 시간이 지나 DB 서버를 원상 복구된 후에 재요청을 하면 정상 처리가 된다. 

 

서버에서는 왠만하면 5xx 코드를 클라이언트에게 전달하도록 코딩하면 x (강의 7:50)

-> 진짜로 서버에서 문제가 터졌을 때에만 5xx를 던져야 한다. 

예를 들어 클라이언트에서 API 스펙에 잘 맞추어 요청을 보냈고, 인증 권한도 가지고 있는 정상적인 요청이 있었다고 하

자. 그리고 그 요청은 고객의 잔고에서 5000원을 출금하는 요청이였다고 가정을 하자. 

만약 고객의 잔고에 0원이 들어 있다면 당연히 서버에서 처리가 불가능한 요청일 것이다. 

결론부터 말하면, 서버의 [시스템] 상의 장애(서버 과부하, SQL 쿼리 문제,DB 서버 장애 등)로 인한 처리 불가한 경우를 제

외하고는 5XX를 내면 안 된다. 

(고로, 만약 5XX가 터지면 개발자들이 모니터링 서버를 통하여 서버의 메트릭을 분석하여 복구한다)

위 예시와 같은 경우에는 "비지니스 로직 상의 예외"의 문제이므로 4xx  or 2xx 상태 코드를 던지는 것이 맞다.