HTTP 404

HTTP 404 (Not Found) [백과사전 정보]

개요

HTTP 404는 Hypertext Transfer Protocol (HTTP)에서 정의된 상태 코드 중 하나로, 클라이언트가 요청한 리소스(웹 페이지, 이미지, 파일 등)가 서버에 존재하지 않을 때 서버가 반환한다. 공식 명칭은 *“404 Not Found”*이며, 4xx 클래스(클라이언트 오류) 중 하나이다.

발생 원인

구분 상세 설명
잘못된 URL 사용자가 주소창에 오타를 입력하거나, 링크가 잘못 작성된 경우.
삭제된 리소스 해당 페이지·파일이 서버에서 삭제되었으나, 외부 링크는 그대로 남아 있는 경우.
이동된 리소스 리소스가 다른 경로로 이동했지만, 301·302와 같은 영구/임시 리다이렉션이 설정되지 않은 경우.
서버 설정 오류 .htaccess·nginx 설정 오류 등으로 인해 정상 경로가 차단되었을 때.
디지털 권한 제한 인증·권한이 필요하지만, 인증이 없거나 충분하지 않아 접근이 차단된 경우(일부 구현에서는 403 대신 404를 반환하기도 함).

HTTP 404의 기술적 의미

  • 클래스: 4xx (Client Error) – 클라이언트가 요청을 잘못 구성했음을 의미한다.
  • RFC: RFC 7231 §6.5.4 에서 정의되며, “The origin server did not find a current representation for the target resource or is not willing to disclose that it exists.” 라고 명시한다.
  • 응답 헤더 예시
    HTTP/1.1 404 Not Found
    Date: Sat, 26 Feb 2026 12:34:56 GMT
    Content-Type: text/html; charset=UTF-8
    Content-Length: 345
    

사용자 경험(UX) 관점에서의 처리

  1. 친절한 오류 페이지

    • 직관적인 메시지와 검색·홈버튼 제공.
    • 사이트 맵·최근 게시물·추천 콘텐츠 등을 포함해 이탈률을 감소시킨다.
  2. 자동 리다이렉션

    • 오래된 URL을 새 URL로 301 영구 리다이렉션하거나, 302 임시 리다이렉션을 활용해 검색 엔진 최적화(SEO)를 유지한다.
  3. 맞춤형 로깅·모니터링

    • 404 로그를 수집·분석해 깨진 링크(‘dead link’)를 찾아 교정한다.
    • Google Search Console, Bing Webmaster Tools 등에서 404 오류를 검토한다.

관련 HTTP 상태 코드

코드 명칭 의미
400 Bad Request 요청 문법이 잘못됨.
401 Unauthorized 인증이 필요함.
403 Forbidden 권한 없음(접근 금지).
404 Not Found 리소스 없음(현재 설명).
410 Gone 리소스가 영구적으로 삭제되어 앞으로도 존재하지 않음.
451 Unavailable For Legal Reasons 법적 이유로 접근 제한.

개발 시 구현 예시 (Python/Flask)

from flask import Flask, render_template, abort

app = Flask(__name__)

@app.route('/article/<int:id>')
def article(id):
    article = get_article_from_db(id)
    if article is None:
        # 404 Not Found 반환
        abort(404)
    return render_template('article.html', article=article)

@app.errorhandler(404)
def page_not_found(e):
    # 커스텀 404 페이지 렌더링
    return render_template('404.html'), 404

보안상의 고려사항

  • 정보 노출 최소화: 서버가 실제 파일 존재 여부를 공개하지 않도록, 404와 403을 구분해 적절히 사용한다.
  • 디렉터리 트래버설 방지: 잘못된 경로 탐색 시 404를 반환해 파일 시스템 구조를 노출하지 않는다.

결론

HTTP 404는 “리소스를 찾을 수 없음”을 나타내는 가장 친숙한 웹 오류 코드이며, 단순히 오류를 알리는 수준을 넘어서 사용자 경험 개선, 검색 엔진 최적화, 보안 등 다양한 측면에서 적절히 관리·대응해야 하는 중요한 웹 표준이다.

둘러보기

더 찾아볼 만한 주제