4xx 클라이언트 오류 

클라이언트 요청에 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 

오류의 원인이 클라이언트에 있다! 

[중요] 4xx 오류인 경우, 재요청해도 실패한다.

이미 요청이 틀렸기 때문이다. 

하지만 서버 문제(5xx)인 경우, 재시도 하면 성공할 가능성이 있다.

서버 또는 DB 문제가 복구되면 받은 요청에 응답할 수 있게 되기 때문이다. 

400 Bad Request 

요청 구문, 파라미터, API 스펙이 맞지 않을 때 클라이언트 오류. 

백엔드 개발자는 모든 입력의 경우의 수를 생각해서 검증로직 validation을 철저히 해야 한다. 

401 Unauthorized

인증 실패. WWW-Authenticate 헤더와 함께 인증 방법을 설명

참고

인증 : 본인이 누구인지 확인(로그인)

인가 : 리소스 접근 권한 확인(일반 유저? 관리자?)

403 Forbidden

인가 실패. 

인증은 됬는데(로그인은 됬지만) 접근할 수 없는 리소스를 요청한 경우.

404 Not Found 

요청 리소스를 찾을 수 없음

클라이언트 요청 url에 오타 있을 수 있다. 

클라이언트가 권한이 없는 리소스에 접근할 때 403임을 숨기고 싶을 때, 일부러 404를 쓰기도 한다. 


5xx 서버 오류 

서버 문제 (NPE, DB 등의 문제)

서버 문제라서 클라이언트가 재시도 몇 번 하면 응답을 받을 수도 있다. 

500 Internal Server Error

서버 내부 문제 전반적으로 500 코드로 처리 

503 Service Unavailable

서비스 이용 불가. 

503보다는 거의 500을 내려준다. 

서버 개발자는 사용자에게 500에러를 보여주면 안된다 

비즈니스 로직에서 예외 처리는 전부 4xx 또는 200으로 해결해서 쌩 500 에러 화면을 보여주지 않도록 하자.  


김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 공부하고 요약했습니다. 

728x90

'프로그래밍 > HTTP' 카테고리의 다른 글

HTTP 헤더 - 일반 헤더(2)  (0) 2021.12.14
HTTP 헤더 - 일반 헤더(1)  (0) 2021.12.14
HTTP 리다이렉션  (0) 2021.12.14

+ Recent posts