Back

404 Not Found는 알겠는데, 401과 403은 뭐가 다를까? (HTTP 상태 코드)

웹 서핑을 하다가 404 Not Found 페이지를 마주친 적이 있을 겁니다.

이 숫자는 **HTTP 상태 코드(Status Code)**라고 불리며, 서버가 클라이언트(브라우저)의 요청에 대해 어떤 결과를 냈는지 알려주는 표준 규약입니다.

개발자라면 반드시 알아야 할 주요 상태 코드들을 정리해 드립니다.

1. 상태 코드의 대분류

상태 코드는 백의 자리 숫자에 따라 크게 5가지로 나뉩니다.

  • 1xx (Informational): 요청을 받았으며 작업을 계속 진행 중임.
  • 2xx (Successful): 요청을 성공적으로 처리함.
  • 3xx (Redirection): 요청 완료를 위해 추가 동작이 필요함 (페이지 이동 등).
  • 4xx (Client Error): 클라이언트의 요청에 오류가 있음.
  • 5xx (Server Error): 서버가 요청을 처리하는 과정에서 오류가 발생함.

2. 성공 (2xx)

  • 200 OK: 가장 일반적인 성공 코드. 요청이 정상적으로 처리됨.
  • 201 Created: 요청이 성공하여 새로운 리소스가 생성됨 (회원가입, 글쓰기 등).
  • 204 No Content: 요청은 성공했으나 응답 본문에 보낼 데이터가 없음 (삭제 등).

3. 클라이언트 에러 (4xx)

가장 헷갈리는 것이 401403입니다.

  • 400 Bad Request: 요청 구문이 잘못됨 (필수 파라미터 누락 등).
  • 401 Unauthorized: "비인증". 로그인이 필요함. (신분증이 없음)
  • 403 Forbidden: "권한 없음". 로그인은 했으나 접근 권한이 없음. (신분증은 있으나 출입증이 없음)
  • 404 Not Found: 요청한 리소스를 찾을 수 없음.

4. 서버 에러 (5xx)

  • 500 Internal Server Error: 서버 내부에서 알 수 없는 오류 발생 (코드 버그 등).
  • 502 Bad Gateway: 게이트웨이(Nginx 등)가 뒷단 서버(WAS)로부터 잘못된 응답을 받음.
  • 503 Service Unavailable: 서버가 과부하 상태이거나 점검 중이라 일시적으로 요청을 처리할 수 없음.

결론

HTTP 상태 코드는 클라이언트와 서버 간의 대화 언어입니다.

적절한 상태 코드를 반환하는 것은 좋은 API 설계의 기본이자, 디버깅 시간을 단축시켜 주는 열쇠입니다. 무조건 200 OK만 내려주지 마세요!

TechHTTPWebNetwork

관련 도구 둘러보기

Pockit의 무료 개발자 도구를 사용해 보세요