인터넷 서핑을 하다가 갑자기 화면에 뜬금없는 숫자 세 개가 나타나서 당황한 적이 있다. 404, 500, 403 같은 숫자들은 마치 웹사이트가 나한테 화를 내는 것만 같은 기분을 느끼게 만든다. 이 숫자들은 사실 서버가 사용자에게 보내는 은밀한 메시지다. 웹사이트가 지금 어떤 상태인지, 왜 내 요청을 거부하는지 그 속마음을 알면 당황하지 않고 대처할 수 있다.

이럴 때 써보세요

  • 주소를 직접 입력하거나 링크를 눌렀는데 갑자기 페이지가 안 뜨고 숫자만 덩그러니 나올 때
  • 개발을 공부하는 중인데 쏟아지는 에러 코드들의 정확한 의미가 헷갈릴 때
  • 내가 만든 웹사이트나 JSON 기반 API에서 사용자의 요청에 어떤 숫자를 돌려줘야 할지 고민될 때
  • 친구가 보낸 에러 화면을 보고 '이거 서버가 터진 거야'라며 아는 체를 하고 싶을 때

상태 코드를 사람의 대화로 이해하기

서버와 브라우저는 끊임없이 대화를 나눈다. 숫자는 그 대화의 결과물이다. 앞자리에 따라 대략적인 분위기를 파악할 수 있다.

  • 1번대 (정보): "지금 요청을 잘 받았으니까 잠시만 기다려 봐."
  • 2번대 (성공): "좋아, 요청한 대로 깔끔하게 처리했어!"
  • 3번대 (리다이렉트): "거기 말고 저쪽 주소로 이사 갔으니까 거기로 가봐."
  • 4번대 (클라이언트 에러): "어라? 너가 주소를 잘못 적었거나 권한이 없는 것 같아."
  • 5번대 (서버 에러): "미안해, 내 쪽 컴퓨터에 불이 났어. 조금만 기다려줘."

이러한 구분법은 HTTP 상태 코드 사전에서도 확인할 수 있는 표준적인 분류 방식이다.

특히 자주 마주치는 4xx와 5xx 코드는 범인을 찾는 단서가 된다. 4번대로 시작하면 사용자의 입력이나 권한에 문제가 있는 것이고, 5번대로 시작하면 서비스를 제공하는 서버 측에 문제가 생긴 것이다.

빠르고 간편하게 HTTP 상태 코드 사전 활용하기

머릿속으로 모든 코드를 외울 필요는 없다. 기억나지 않는 코드가 있다면 검색 도구를 활용하면 된다.

  1. HTTP 상태 코드 사전 페이지에 접속한다.
  2. 검색창에 궁금한 숫자나 키워드를 입력한다.
  3. 해당 코드가 왜 발생했는지, 그리고 프론트엔드나 백엔드 관점에서 어떻게 해결해야 하는지 확인한다.

모든 연산은 브라우저 안에서 가볍고 빠르게 처리되기 때문에 무겁거나 복잡한 프로그램 설치 없이 그 자리에서 바로 답을 찾을 수 있다.

더 재밌게 써먹는 팁

가장 흔히 헷갈리는 401번과 403번의 차이를 알면 웹의 작동 원리가 더 흥미로워진다. 401 Unauthorized는 신원 확인이 아예 안 된 상태, 즉 로그인을 안 했거나 토큰이 만료되어 '너 누구야?'라고 묻는 상황이다. 반면에 403 Forbidden은 '너 누군지는 알겠는데, 여기는 관리자만 들어오는 곳이야'라며 문을 굳게 닫아버리는 상황이다. 다음에 이 코드를 만나면 웹사이트가 나를 몰라보는 것인지, 아니면 문전박대하는 것인지 구분해 볼 수 있다.