상세 컨텐츠

본문 제목

HTTP 상태 코드 200, 404, 500이 의미하는 것: 에러 해결의 첫걸음

개발기초

by 강정_DEV 2026. 7. 16. 14:22

본문

728x90

웹 개발을 하다 보면 브라우저 개발자 도구의 네트워크 탭이나 서버 로그에서 세 자리 숫자로 된 코드를 자주 마주하게 됩니다. 이를 'HTTP 상태 코드'라고 부릅니다. 서버와 클라이언트가 대화를 나눌 때, 요청이 성공했는지 혹은 문제가 생겼는지를 알려주는 일종의 신호입니다.

상태 코드를 이해하면 문제가 발생했을 때 어디서부터 해결해야 할지 범위를 좁히는 데 큰 도움이 됩니다.

HTTP 상태 코드의 분류

HTTP 상태 코드는 첫 번째 숫자에 따라 크게 5가지 범주로 나뉩니다. RFC 9110 표준에 따르면 각 숫자는 다음과 같은 의미를 담고 있습니다.

  • 1xx (정보): 요청을 받았으며 프로세스가 진행 중임
  • 2xx (성공): 요청이 성공적으로 처리됨
  • 3xx (리다이렉션): 요청을 완료하기 위해 추가 동작이 필요함
  • 4xx (클라이언트 오류): 요청에 오류가 있어 서버가 처리할 수 없음
  • 5xx (서버 오류): 서버가 유효한 요청을 처리하는 데 실패함

자주 마주하는 상태 코드와 의미

200 OK: 모든 것이 정상입니다

가장 반가운 숫자입니다. 서버가 클라이언트의 요청을 성공적으로 처리했고, 응답 본문에 요청한 데이터를 담아 보냈다는 뜻입니다. API 개발 시 데이터를 정상적으로 조회했을 때 이 코드를 반환합니다.

404 Not Found: 찾을 수 없습니다

클라이언트가 요청한 리소스(URL, 파일 등)가 서버에 존재하지 않을 때 발생합니다. 주로 잘못된 경로로 요청을 보냈거나, 삭제된 페이지에 접근하려 할 때 나타납니다.

500 Internal Server Error: 서버 내부의 문제입니다

서버가 요청을 처리하던 중 예상치 못한 에러를 만났을 때 발생합니다. 코드 로직상의 버그, 데이터베이스 연결 실패, 혹은 서버 설정 문제 등 원인이 다양합니다. 클라이언트의 잘못이라기보다는 서버 쪽의 문제인 경우가 많습니다.

실제 환경에서의 확인 방법

API를 호출하는 간단한 예제 코드(JavaScript, Fetch API)를 통해 상태 코드를 어떻게 확인하는지 살펴보겠습니다.

fetch('https://api.example.com/data')
  .then(response => {
    if (response.status === 200) {
      console.log('성공적으로 데이터를 가져왔습니다.');
    } else if (response.status === 404) {
      console.error('요청한 리소스를 찾을 수 없습니다.');
    } else if (response.status === 500) {
      console.error('서버에 문제가 발생했습니다.');
    }
  })
  .catch(error => console.error('네트워크 에러:', error));

문제를 해결할 때 주의할 점

상태 코드는 개발자가 서버를 구현할 때 설정하는 값입니다. 따라서 상황에 따라 API 명세서와 실제 응답이 다를 수 있습니다. 특히 500 에러의 경우, 보안상의 이유로 서버가 구체적인 에러 내용을 숨기고 일반적인 500 에러 메시지만 반환하는 경우가 많습니다. 이때는 서버 측의 로그를 확인해야 정확한 원인을 파악할 수 있습니다.

상태 코드는 문제를 해결하는 실마리일 뿐, 그 자체가 모든 해결책을 제시하지는 않습니다. 하지만 오류가 발생했을 때 '클라이언트의 요청이 잘못되었는지' 아니면 '서버 내부에서 에러가 났는지'를 구분하는 것만으로도 문제 해결 시간을 크게 단축할 수 있습니다.

참고 자료


🤖 이 글은 생성형 AI(Google Gemini)가 주제 선정 → 자료 조사 → 초안 작성 → AI 검수 과정을 거쳐 자동으로 작성했습니다. 사실과 다른 내용이 포함될 수 있으니 참고용으로 확인해 주세요.

반응형

관련글 더보기

댓글 영역