HTTP 404는 클라이언트(웹 브라우저 등)가 서버와 통신에는 성공했으나, 서버가 요청한 리소스(웹 페이지, 이미지, 파일 등)를 찾을 수 없을 때 서버가 반환하는 HTTP 상태 코드(Status Code)이다. 표준 응답 구문(Reason Phrase)은 "Not Found"이며, 일상적으로 "페이지를 찾을 수 없음(Page Not Found)" 또는 "파일을 찾을 수 없음(File Not Found)"으로 불린다.
HTTP 프로토콜에서 서버는 요청에 대해 세 자리 숫자로 구성된 응답 코드를 반환해야 한다. 404 코드에서 첫 번째 자리인 '4'는 클라이언트 측 오류(Client Error)를 의미하며, 뒤의 '04'는 구체적인 오류 유형을 나타낸다. 이러한 세 자리 코드 체계는 FTP나 NNTP 등 이전 프로토콜에서 사용된 방식과 유사하다. 404 응답에는 사람이 읽을 수 있는 문구(Not Found)가 함께 제공되며, 대부분의 웹 서버는 이 코드와 문구를 포함한 HTML 페이지를 기본적으로 생성하여 출력한다.
404 오류는 주로 페이지가 이동되었거나 삭제되었을 때 발생한다. 페이지가 이동된 경우에는 301 Moved Permanently 리디렉션을 설정하는 것이 바람직하며, 영구 삭제된 경우에는 410 Gone 상태 코드를 반환하는 것이 HTTP 명세에 더 적합하다. 그러나 이러한 설정은 서버 구성 파일이나 URL 재작성(rewriting)을 통해 별도로 구성해야 하므로, 대부분의 웹사이트는 이를 적용하지 않고 404를 그대로 반환한다.
404 오류는 DNS 오류와 혼동되어서는 안 된다. DNS 오류는 요청된 URL이 존재하지 않는 서버 이름을 가리킬 때 발생하는 반면, 404 오류는 서버 자체는 정상적으로 발견되었으나 해당 서버가 요청된 페이지를 찾을 수 없음을 의미한다.
일부 웹사이트는 실제로는 페이지가 존재하지 않음에도 불구하고 "200 OK" 응답 코드와 함께 표준 페이지를 반환하는 경우가 있는데, 이를 소프트 404(Soft 404)라고 한다. 이 용어는 2004년 Ziv Bar-Yossef 등에 의해 처음 소개되었다. 소프트 404는 검색 엔진의 링크 분석 자동화에 문제를 일으키며, 구글과 야후 등은 이를 탐지하는 자동화 프로세스를 운영하고 있다.
일부 프록시 서버는 원격 호스트와의 연결 문제(호스트명 해석 실패나 TCP 연결 거부 등)가 발생했을 때, 올바른 응답인 5xx 계열(내부 서버 오류) 대신 404를 반환하기도 한다. 이는 프로그램이 응답 코드를 기반으로 정확한 상황을 판단하는 것을 어렵게 만든다.
2004년 7월, 영국 통신사 BT 그룹은 Cleanfeed 콘텐츠 차단 시스템을 도입하여 인터넷 감시 재단(Internet Watch Foundation)이 불법으로 식별한 콘텐츠에 대한 요청에 404 오류를 반환하도록 하였다. 검열을 은폐하기 위해 가짜 404 오류를 사용하는 관행은 태국과 튀니지에서도 보고되었다. 튀니지에서는 시민들이 이러한 가짜 404 오류의 실체를 인지한 후, "보이지 않는 검열관"을 상징하는 가상의 캐릭터 "암마르 404(Ammar 404)"를 만들어내기도 하였다.
마이크로소프트의 IIS(Internet Information Services) 웹 서버 소프트웨어는 404 응답에 부가적인 하위 상태 코드(Substatus Code)를 함께 반환한다. 이 코드는 소수점 숫자 형태로 404 뒤에 추가되며(예: 404.0, 404.1 등), IANA에 공식적으로 등록되어 있지 않고 비마이크로소프트 서버에서는 반환되지 않는다.
많은 조직과 웹사이트는 404 오류 페이지를 유머를 담은 맞춤형 페이지로 꾸미기도 한다. 유럽에서는 Missing Children Europe, Child Focus 등 여러 유럽 기관이 공동으로 NotFound 프로젝트를 만들어, 웹사이트 운영자가 404 오류 페이지에 실종 아동 정보를 표시하는 코드를 추가할 수 있도록 장려하고 있다. 또한 구글 서치 콘솔, 구글 애널리틱스, 로그 파일 분석 등 다양한 도구를 통해 웹사이트 내 404 오류를 추적하고 관리할 수 있다.