404 adalah kode status HTTP. Setiap kali agan2 mengunjungi suatu halaman web, komputer Anda akan meminta data dari server menggunakan HTTP, atau Hypertext Transfer Protocol. Sebelum halaman web ditampilkan dalam browser, web server mengirim
HTTP header, yang berisi kode status. Tanpa kita ketahui, browser kita telah mengirimkan server header sendiri, yang berisi lebih banyak informasi tentang Agan2 daripada yang Agan2 pikirkan!
Untuk halaman web yang normal, statusnya adalah 200 OK. Tetapi Agan2 tidak dapat melihat hal ini karena server menampilkan halaman. Hanya ketika Agan2 menjumpai kesalahan baru agan2 dapat melihat kode status sebenarnya, seperti 404 page not found.
Kode status HTTP didirikan oleh World Wide Web Consortium (W3C) pada tahun 1992, sebagai bagian dari 0,9 HTTP spec. Mereka didefinisikan oleh Tim Berners-Lee, orang yang sama yang sendirian menemukan web dan browser web pertama kali tahun 1990.
Berners-Lee menyamakan kode status HTTP dengan kode status FTP, yang sudah ada sejak tahun 1990; FTP spec diresmikan tanggal 1985, meskipun FTP sebenarnya telah digunakan lebih lama lagi.
Mari kita bedah anka 404.
angka 4 pertama menunjukkan kesalahan klien. Server mengatakan bahwa agan2 telah melakukan sesuatu yang salah, seperti misspell URL atau meminta halaman yang sudah tidak ada lagi. Sebaliknya, kesalahan misal :5xx menunjukkan sisi server masalah. Ini juga menunjukkan kesalahan yang bisa bersifat sementara.
Angka tengah 0 mengacu pada kesalahan sintaks umum(syntax error). Ini bisa menandakan kesalahan ejaan.
Sedangkan angka 4 terakhir hanya menunjukkan kesalahan tertentu dalam kelompok 40x, yang juga mencakup 400: Bad Request, 401: Tidak Sah, dll
Menurut W3C, 404 page not found ini seharusnya hanya digunakan dalam kasus-kasus di mana server tidak dapat menemukan lokasi yang diminta dan tidak yakin statusnya. Jika halaman telah dihapus secara permanen, maka seharusnya menggunakan 410: hilang secara permanen. Tetapi siapa yang pernah melihat 410? selalu 404
Status-Code =
"100" ; Section 10.1.1: Continue
"101" ; Section 10.1.2: Switching Protocols
"200" ; Section 10.2.1: OK
"201" ; Section 10.2.2: Created
"202" ; Section 10.2.3: Accepted
"203" ; Section 10.2.4: Non-Authoritative Information
"204" ; Section 10.2.5: No Content
"205" ; Section 10.2.6: Reset Content
"206" ; Section 10.2.7: Partial Content
"300" ; Section 10.3.1: Multiple Choices
"301" ; Section 10.3.2: Moved Permanently
"302" ; Section 10.3.3: Found
"303" ; Section 10.3.4: See Other
"304" ; Section 10.3.5: Not Modified
"305" ; Section 10.3.6: Use Proxy
"307" ; Section 10.3.8: Temporary Redirect
"400" ; Section 10.4.1: Bad Request
"401" ; Section 10.4.2: Unauthorized
"402" ; Section 10.4.3: Payment Required
"403" ; Section 10.4.4: Forbidden
"404" ; Section 10.4.5: Not Found
"405" ; Section 10.4.6: Method Not Allowed
"406" ; Section 10.4.7: Not Acceptable
"407" ; Section 10.4.8: Proxy Authenti ation Required
"408" ; Section 10.4.9: Request Timeout
"409" ; Section 10.4.10: Conflict
"410" ; Section 10.4.11: Gone
"411" ; Section 10.4.12: Length Required
"412" ; Section 10.4.13: Precondition Failed
"413" ; Section 10.4.14: Request Entity Too Large
"414" ; Section 10.4.15: Request-URI Too Large
"415" ; Section 10.4.16: Unsupported Media Type
"416" ; Section 10.4.17: Requested range not satisfiable
"417" ; Section 10.4.18: Expectation Failed
"500" ; Section 10.5.1: Internal Server Error
"501" ; Section 10.5.2: Not Implemented
"502" ; Section 10.5.3: Bad Gateway
"503" ; Section 10.5.4: Service Unavailable
"504" ; Section 10.5.5: Gateway Time-out
"505" ; Section 10.5.6: HTTP Version not supported