주제
Q 1 : “4xx - 클라이언트 오류?“
Q 2 : “5xx - 서버 오류?
HTTP 상태코드 정리 4xx - 클라리언트 오류 클라이언트의 요청에 잘못된 문법 등으로 서버가 요청을 수행할 수 없는 경우를 뜻한다. 오류의 원인이 클라이언트에게 있다. 이미 잘못된 요청과 데이터를 보내고 있기에 똑같은 재시도가 실패한 경우다. 400 Bad Request 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없는 상황을 말한다. 클라이언트는 요청 내용을 다시 검토하고 보내야한다. 예) 요청 파라미터가 잘못됐거나 API 스펙이 맞지 않을때 401 Unauthorized 클라이언트가 해당 리소스에 대한 인증이 필요할 때 401 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명한다. Authentication(인증) : 보인이 누구인지 확인(로그인) Authorization(인가) : 권한 부여(Admin 권한처럼 특정 리소스에 접근할 수 있는 권한의 경우 ‘Authentication(인증)’이 있어야 ‘Authorization(인가)’가 있다. 403 Forbidden 서버가 요청을 이해했지만 승인을 거부당할 때 예) 어드민 등급이 아닌 사용자가 로그인했는데 어드민 등급의 리소스에 접근하는 경우를 뜻한다. 404 Not Found 요청 리소스가 서버에 없음 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 숨기고 싶을 때
HTTP 상태코드 정리 5xx - 서버오류 서버 문제로 오류 발생. 서버에 문제가 있기에 재시도하면 성공할 수도 있음(복구가 되거나 등등) 500 - Internal Server Error 서버 문제로 오류 발생, 애매하면 500 오류로 처리하는 게 좋다. 503 - Service Unavailable 서비스 이용 불가(대부분 500이 떨어지는 경우가 많음) 서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음 Retry-After 헤더 필드로 얼마 뒤에 복구되는지 보낼 수도 있음. 500 Error를 내지 말아야 하는 상황 1) 고객의 잔고가 부족한 경우 2) 연령대에 따른 고객 주문 3) 500에러는 진짜 서버에 문제가 생길 때 내는 게 좋다.
참고 자료
김영한 인프런 강의 : 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의