4xx(Client Error)
- 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음
- 오류의 원인이 클라이언트에 있음
- 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함
- 클라이언트 오류와 서버 오류의 큰 차이점을 간단하게 말하자면, 클라이언트가 잘못을 했으면 400대 오류인거고 뭔가 서버에 문제가 있으면 500대 오류이다. 그리고 400대 오류와 500대 오류를 가르는 차이점이 한 가지가 더 있는데요. 400대 오류는 이미 클라이언트가 잘못 요청한 것입니다. 그러기 때문에 똑같이 여러번 재시도해도 계속 실패합니다. 반면, 500대 오류는 예를 들어서 서버 데이터베이스에 장애가 났어요. 그러면 서버에 요청을 보내면 500대 오류가 나겠죠. 그런데 데이터베이스가 나중에 복구가 되었어요. 그러면 클라이언트에서 똑같은 요청을 재시도해도 요청이 성공할 가능성이 있습니다.
400대 오류: 복구 불가능
500대 오류: 복구 가능 확률있음
400 Bad Request
클라이언트가 잘못된 요청을해서 서버가 요청을 처리할 수 없음
- 요청 구문, 메시지 등등 오류
- 클라이언트는 요청 내용을 다시 검토하고, 보내야함
- 예) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때
401 Unauthorized
클라이언트가 해당 리소스에 대한 인증이 필요함
- 인증(Authorized) 되지 않음
- 401 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설명
- 참고
- 인증(Authentication): 본인이 누구인지 확인, (로그인)
- 인가(Authorization): 권한 부여(ADMIN 권한처럼 특정 리소스에 접근할 수 있는 권한, 인증이 있어야 인가가 있음)
- 오류 메시지가 Unauthorized이지만 인증되지 않음(이름이 아쉬움)
403 Forbidden
서버가 요청을 이해했지만 승인을 거부함
- 주로 인증 자격 증명은 있지만, 접근 권한이 불충분한 경우
- 예) 어드민 등급이 아닌 사용자가 로그인은 했지만, 어드민 등급의 리소스에 접근하는 경우
404 Not Found
요청 리소스를 찾을 수 없음
- 요청 리소스가 서버에 없음
- 또는 클라이언트가 권한이 부족한 리소스에 접근할 때 해당 리소스를 숨기고 싶을 때
'HTTP 웹 지식' 카테고리의 다른 글
HTTP 일반 헤더1- 일반 헤더(HTTP 헤더 개요) (0) | 2022.01.15 |
---|---|
HTTP 상태 코드6(5xx - 서버 오류) (0) | 2022.01.11 |
HTTP 상태 코드4(3xx - 리다이렉션2) (0) | 2022.01.11 |
HTTP 상태 코드3(3xx - Redirection) (0) | 2022.01.11 |
HTTP 상태 코드2(2xx - 성공) (0) | 2022.01.11 |