HTTP 상태 코드
택배 기사님이 배송 상황을 '배송 완료', '주소 불명', '부재중' 같은 짧은 세 자리 숫자로 알려주는 알림 메시지예요.
정의 HTTP 상태 코드는 웹 브라우저가 서버에 웹페이지나 사진을 달라고 요청했을 때, 서버가 그 일을 어떻게 처리했는지 알려주는 3자리 숫자 신호예요. 100번대부터 500번대까지 맨 앞자리 숫자에 따라 성공, 주소 이동, 사용자 실수, 서버 고장 같은 처리 결과를 명확하게 나타내요.
앞자리 숫자만 봐도 결과를 알 수 있어요
우리가 웹 서핑을 할 때 스마트폰은 웹사이트 데이터가 담긴 컴퓨터(서버)에 쉼 없이 요청을 보내요. 이때 서버는 요청을 받자마자 처리 상황을 요약한 3자리 숫자를 답장으로 먼저 보내줘요. 이것이 바로 상태 코드예요.
가장 중요한 비밀은 바로 첫 번째 숫자에 있어요. 100번대부터 500번대까지 맨 앞자리 숫자가 5가지 큰 상태를 가리키거든요. 200번대는 '성공(2xx)', 300번대는 '다른 주소로 이동(3xx)'을 뜻해요. 우리가 평소에 웹페이지를 막힘없이 보고 있다면, 화면 뒤에서 서버가 200번(OK) 코드를 부지런히 보내주고 있는 거예요.
반면 문제가 생기면 400번대나 500번대가 나타나요. 400번대는 주소를 잘못 쓴 사용자 쪽의 실수이고, 500번대는 서버 기계가 고장 난 경우예요. 이렇게 앞자리 하나만 확인해도 누구의 문제인지 즉시 파악할 수 있어요.
우리가 인터넷에서 가장 자주 마주치는 코드들
인터넷을 쓰다 보면 가장 흔하게 보는 화면이 바로 '404 Not Found'예요. 이것은 서버 안에 요청받은 페이지나 파일이 존재하지 않는다는 뜻이에요. 주소창에 글자를 잘못 쳤거나 사이트 관리자가 글을 지웠을 때, 존재하지 않는 페이지를 찾으려 하면 404가 떠요.
가끔 로그인을 하지 않고 비밀 게시판에 들어가려 하면 '403 Forbidden'을 보게 돼요. 서버가 사용자가 누구인지 알거나 요청 자체는 이해했지만 접근 권한이 없어서 거절한다는 신호예요. 문은 분명히 존재하지만 들어갈 수 있는 열쇠가 없는 상태와 같아요.
명절 기차표 예매나 수강 신청 날 접속이 폭주하면 '500'이나 '503' 화면이 뜨곤 해요. 500(Internal Server Error)은 서버 프로그램 내부에서 알 수 없는 고장이 터진 것이고, 503(Service Unavailable)은 서버에 접속자가 너무 몰려 감당하지 못하고 잠시 문을 닫은 상태예요.
조금 더 정확히 말하면
조금 더 정확히 말하면, 상태 코드는 우리가 눈으로 보는 웹페이지 본문(바디)이 아니라 보이지 않는 통신 머리말(헤더)에 담겨 전달돼요. 브라우저는 이 머리말에 적힌 숫자부터 먼저 읽고 나서 다음 행동을 결정해요.
예를 들어 서버가 301이나 302 같은 300번대 코드를 보내면, 브라우저는 사용자에게 오류 화면을 띄우지 않고 지정된 새 주소로 자동 이동시켜요. 사용자는 눈 깜빡할 사이에 새 사이트로 넘어가기 때문에 화면 뒤에서 숫자가 오간 사실조차 눈치채지 못하죠.
또한 개발자들은 이 상태 코드를 전 세계 공통 표준 규격으로 정해두었어요. 미국 서버든 한국 서버든 404는 똑같이 '찾을 수 없음'을 뜻하기 때문에, 전 세계의 수많은 프로그램이 서로 다른 언어로 만들어져도 문제없이 대화할 수 있는 토대가 돼요.
🤔 흔한 오해
404 에러나 500 에러 화면이 뜨는 것은 내 스마트폰의 와이파이나 인터넷 선이 끊겼기 때문이다.
상태 코드를 받았다는 것 자체가 이미 인터넷 연결과 서버 통신은 정상적으로 이루어졌다는 뜻이에요. 404는 찾으려는 페이지가 서버에 없는 것이고, 500은 서버 컴퓨터 내부의 프로그램에 오류가 났다는 뜻이에요.
🧺 일상에서 만나요
웹 서버가 브라우저의 요청을 어떻게 처리했는지 알려주는 전 세계 공통의 3자리 숫자 신호예요.