본문 바로가기
IT

HTTP 상태 코드 완전 정리 — 1xx~5xx 분류와 4xx·5xx 차이

by 샤나엘 2026. 6. 28.
반응형

HTTP 상태 코드 완전 정리 — 1xx~5xx 분류와 4xx·5xx 차이

웹을 쓰다 보면 404, 500, 301 같은 세 자리 숫자를 만난다. 이게 HTTP 상태 코드다. 서버가 "네 요청을 어떻게 처리했는지"를 숫자로 알려주는 신호인데, 종류가 많아 외우기 막막하다. 하지만 규칙은 단순하다. 첫 자리 숫자만 보면 큰 방향이 잡힌다. 1로 시작하면 정보, 2는 성공, 3은 이동, 4는 내 요청의 문제, 5는 서버의 문제다. 이 글은 1xx부터 5xx까지 다섯 분류를 한눈에 정리하고, 가장 헷갈리는 4xx와 5xx의 차이, 그리고 자주 만나는 코드들을 빠른 표로 묶는다. 개별 코드의 원인·해결은 각각 별도 글에서 더 깊이 다룬다.

HTTP 상태 코드 완전 정리

 

이 글의 구성

 

🔎HTTP 상태 코드란 무엇인가
🗂1xx~5xx 다섯 분류 한눈에
⚖️4xx vs 5xx — 누구의 문제인가
📋자주 만나는 코드 빠른 표
💻상태 코드 확인하는 법
💬자주 묻는 질문 5가지

🔎 HTTP 상태 코드란 무엇인가

HTTP 상태 코드는 브라우저가 서버에 무언가를 요청했을 때, 서버가 "그 요청을 어떻게 처리했는지"를 돌려주는 세 자리 숫자다. 페이지가 잘 떴으면 200, 주소가 없으면 404, 서버가 터졌으면 500이 온다. 사용자 눈에는 잘 안 보이지만, 모든 요청에는 이 코드가 따라온다.

 

핵심은 첫 자리 숫자다. 첫 자리가 그 코드의 큰 분류를 정한다. 1xx는 정보성 중간 응답, 2xx는 성공, 3xx는 다른 곳으로 이동하라는 리다이렉션, 4xx는 요청한 쪽(클라이언트)의 문제, 5xx는 서버의 문제다. 뒤 두 자리는 그 안에서 구체적인 상황을 나눈다. 그래서 코드를 다 외울 필요 없이, 첫 자리로 방향만 잡아도 절반은 이해한 셈이다.

핵심 — 첫 자리가 방향을 정한다

상태 코드를 만나면 첫 숫자부터 본다. 2면 성공, 3이면 이동, 4면 내 요청을 손볼 차례, 5면 서버 쪽 문제다. 이 한 가지만 알아도 "내가 고칠 건지, 서버 담당이 볼 건지"가 바로 갈린다. 나머지 두 자리는 그다음 디테일이다.


🗂 1xx~5xx 다섯 분류 한눈에

다섯 분류의 의미와 대표 코드를 정리하면 이렇다. 각 분류가 "요청 처리의 어느 국면"을 말하는지 보면 외우기 쉽다.

분류 의미 대표 코드
1xx 정보 — 요청을 받았고 처리 중 100 Continue, 101 Switching
2xx 성공 — 요청을 정상 처리 200 OK, 201 Created, 204 No Content
3xx 리다이렉션 — 다른 곳으로 이동 301, 302, 304, 307, 308
4xx 클라이언트 오류 — 요청에 문제 400, 401, 403, 404, 429
5xx 서버 오류 — 서버가 처리 실패 500, 502, 503, 504

1xx는 실제로는 거의 눈에 안 띄는 중간 신호다. 2xx는 우리가 바라는 정상 응답이고, 3xx는 주소를 옮겼으니 따라오라는 안내다. 그리고 실무에서 디버깅할 일이 많은 건 4xx와 5xx다. 이 둘을 구분하는 게 문제 해결의 출발점이다.


⚖️ 4xx vs 5xx — 누구의 문제인가

상태 코드에서 가장 실용적인 구분이 4xx와 5xx다. 한쪽은 요청한 쪽, 다른 쪽은 서버 쪽 문제라 손볼 사람이 다르다.

구분 4xx 클라이언트 오류 5xx 서버 오류
원인 요청에 문제(주소·권한·형식 등) 서버가 요청을 처리하다 실패
누가 손보나 요청을 보낸 쪽(주소·입력 수정) 서버 운영자(코드·인프라 점검)
예시 404 없음, 403 금지, 400 잘못된 요청 500 내부 오류, 502·503·504

쉽게 말해, 4xx가 떴다면 "내가 보낸 요청"을 의심한다. 주소를 잘못 쳤거나, 권한이 없거나, 형식이 틀렸을 수 있다. 5xx가 떴다면 "서버"를 의심한다. 내 요청은 멀쩡한데 서버가 처리하다 터졌거나 과부하이거나 뒷단이 응답을 못 준 것이다. 다만 경계가 늘 칼 같진 않다. 예를 들어 잘못된 요청이 서버 버그를 건드려 500이 나기도 한다. 그래도 첫 구분으로는 "4면 내 쪽, 5면 서버 쪽"이 가장 빠른 출발점이다.


📋 자주 만나는 코드 빠른 표

웹·API를 다루며 실제로 자주 만나는 코드만 모았다. 의미를 한 줄로 익혀 두면 만났을 때 당황하지 않는다.

코드 이름 한 줄 의미
200 OK 정상 처리됨
301 / 302 Moved / Found 영구·임시 이동
304 Not Modified 캐시 그대로 사용
400 Bad Request 요청 구문이 잘못됨
401 / 403 Unauthorized / Forbidden 인증 필요 / 권한 없음
404 / 410 Not Found / Gone 없음 / 영구히 사라짐
405 / 415 Method / Media Type 메서드·형식 미지원
409 / 422 Conflict / Unprocessable 상태 충돌 / 검증 실패
413 / 429 Payload / Too Many 본문 초과 / 요청 과다
500 Internal Server Error 서버 내부 오류
502 / 503 / 504 Gateway / Unavailable / Timeout 게이트웨이·과부하·시간 초과

이 표만 머릿속에 있어도 대부분의 상황에서 "이게 무슨 뜻인지"는 바로 떠올릴 수 있다. 각 코드의 구체적인 원인과 해결은 코드마다 사정이 달라, 개별 글에서 더 자세히 다룬다.


💻 상태 코드 확인하는 법

어떤 코드가 오는지는 curl로 헤더만 받아 보면 가장 빠르다. -I 옵션이 헤더만 보여 준다.

# 응답 상태 코드 확인
curl -I https://example.com

# 첫 줄에 코드가 보인다
HTTP/2 200

# 리다이렉트를 끝까지 따라가며 확인
curl -sIL https://example.com | grep -i "HTTP/"

브라우저에서는 개발자도구(F12)의 네트워크 탭을 열면, 각 요청마다 Status 열에 상태 코드가 표시된다. 빨갛게 뜬 요청을 클릭하면 어떤 코드인지, 응답 본문에 어떤 단서가 있는지 볼 수 있다. 문제 해결은 늘 이 코드를 읽는 데서 시작한다.


💬 자주 묻는 질문 5가지

Q1상태 코드를 다 외워야 하나요?

아닙니다. 첫 자리 분류(2 성공·3 이동·4 내 요청·5 서버)와 자주 만나는 십여 개만 알면 충분합니다. 나머지는 만났을 때 찾아보면 됩니다. 첫 자리만으로도 "내가 고칠지, 서버 담당이 볼지"가 갈립니다.

Q2404가 뜨면 제 잘못인가요?

404는 4xx라 "요청한 주소"에 문제가 있다는 뜻입니다. 주소 오타이거나, 페이지가 삭제·이동된 경우죠. 다만 사이트 운영자가 링크를 잘못 걸어 둔 경우도 있어, 꼭 사용자 잘못만은 아닙니다. 주소를 다시 확인하는 게 첫걸음입니다.

Q3500이 떴는데 새로고침하면 되나요?

500은 서버 내부 오류라 사용자가 할 수 있는 건 제한적입니다. 일시적 문제면 잠시 후 재시도로 풀리기도 하지만, 근본 원인은 서버 쪽에 있어 운영자가 로그를 봐야 합니다. 502·503·504도 비슷하게 서버·인프라 쪽 점검이 필요합니다.

Q4200인데 화면이 이상해요. 코드가 틀린 건가요?

상태 코드는 "요청 처리 결과"만 알려줄 뿐, 화면 내용의 정확성까지 보장하진 않습니다. 200이어도 본문 데이터가 비었거나 잘못 렌더링될 수 있죠. 그땐 응답 본문과 프런트엔드 로직을 따로 봐야 합니다. 코드는 출발점이지 전부가 아닙니다.

Q53xx는 오류인가요?

아닙니다. 3xx는 "다른 곳으로 이동하라"는 정상 안내입니다. 301·302 리다이렉트, 304 캐시 재사용 모두 오류가 아니라 정상 흐름의 일부죠. 브라우저가 자동으로 따라가기 때문에 사용자는 대개 알아채지 못합니다. 오류로 오해하지 않아도 됩니다.


📌 결론

HTTP 상태 코드는 서버가 요청 처리 결과를 알려주는 세 자리 숫자다. 종류는 많지만, 첫 자리만 알면 큰 방향이 잡힌다. 1xx 정보, 2xx 성공, 3xx 이동, 4xx 내 요청의 문제, 5xx 서버의 문제다.

핵심 원칙은 다음과 같다.

 

🔢 첫 자리로 방향을 잡는다. 2면 성공, 3이면 이동, 4면 요청 쪽, 5면 서버 쪽이다. 이 한 가지가 가장 빠른 출발점이다.

🧭 4xx와 5xx를 구분한다. 4xx는 주소·권한·형식 등 요청을 손보고, 5xx는 서버·인프라를 점검한다. 손볼 사람이 다르다.

🔍 코드부터 확인한다. curl -I나 개발자도구 네트워크 탭으로 실제 코드를 읽고, 거기서부터 원인을 좁혀 간다. 개별 코드의 자세한 원인·해결은 각 코드별 글에서 다룬다.

상태 코드 읽기 체크리스트

 

01첫 자리로 분류 — 1 정보·2 성공·3 이동·4 요청·5 서버.
024xx면 내 요청(주소·권한·형식), 5xx면 서버 점검.
033xx는 오류 아님 — 정상 이동·캐시 흐름.
04curl -I·개발자도구 네트워크 탭으로 실제 코드 확인.
05코드는 출발점 — 응답 본문의 단서까지 함께 읽기.

본 글은 HTTP 상태 코드의 분류와 대표 코드를 정리한 입문 자료다. 개별 코드의 상세 원인·해결은 각 코드별 글을 참고하면 된다.

 

#HTTP상태코드 #상태코드 #HTTP에러 #4xx #5xx #200OK #301리다이렉트 #404 #500에러 #502 #503 #504 #웹개발 #백엔드 #API

반응형

댓글