GudPeople pasti pernah sesekali melihat pesan seperti “404 Not Found” atau “500 Internal Server Error” saat menjelajah internet, kan?
Nah, angka 404 atau 500 tersebut adalah contoh dari HTTP Status Code.
Apa yang Dimaksud dengan HTTP Status Code?
HTTP Status Code adalah kode tiga digit yang dikirim oleh server website sebagai jawaban atas permintaan yang dikirim oleh browser.
Ketika browser meminta untuk melihat suatu halaman web, server akan menjawab dengan kode status ini untuk memberitahu hasil permintaan tersebut.
Apakah berhasil? Gagal? Atau perlu dialihkan ke tempat lain?
Setiap kode status ini memiliki arti khusus.
Digit pertama dari kode tersebut menunjukkan kategori responnya:
- 1xx (Informasi): Permintaan sudah diterima dan proses sedang dilanjutkan. Kode ini jarang ditampilkan langsung ke penggunar.
- 2xx (Sukses): Permintaan berhasil diterima, dipahami, dan diproses oleh server. Kode paling terkenal di kelas ini adalah 200 OK.
- 3xx (Pengalihan/Redirection): Perlu ada tindakan tambahan yang dilakukan oleh browser untuk menyelesaikan permintaan, biasanya berupa pengalihan otomatis ke URL lain. Contohnya 301 Moved Permanently.
- 4xx (Kesalahan Klien/Client Error): Terjadi kesalahan pada permintaan yang dikirim oleh browser. Bisa jadi karena URL salah ketik, halaman tidak ada, atau tidak punya izin akses. Contoh populer: 404 Not Found, 403 Forbidden.
- 5xx (Kesalahan Server/Server Error): Server gagal memenuhi permintaan yang sebenarnya valid karena terjadi masalah di sisi server itu sendiri. Contoh umum: 500 Internal Server Error, 503 Service Unavailable.
Daftar HTTP Status Code, Penyebab, dan Solusinya!
Ada banyak sekali kode status HTTP, tapi kamu tidak harus menghafal semuanya.
Berikut beberapa kode yang paling sering muncul dan penting untuk kamu kenali, baik sebagai pengguna internet biasa maupun sebagai pengelola website.
1. Kode 2xx: Sukses
Kode dalam rentang ini menandakan permintaan dari browser kamu berhasil diterima dan diproses oleh server.
Misal, 200 OK.
Artinya, halaman atau file yang kamu minta berhasil ditemukan dan dikirimkan oleh server.
Kode ini menunjukkan tidak ada masalah, jadi tidak ada yang perlu diperbaiki.
2. Kode 3xx: Pengalihan (Redirection)
Kode ini memberitahu browser bahwa lokasi sumber daya yang diminta sudah berpindah, dan browser perlu melakukan langkah tambahan untuk mengaksesnya.
Misal, 301 Moved Permanently.
Artinya, halaman yang kamu tuju telah dipindahkan secara permanen ke URL baru.
Penyebabnya, pemilik website mengubah struktur URL, memindahkan konten ke domain baru, atau migrasi dari HTTP ke HTTPS.
Bagi pemilik website, pastikan redirect 301 sudah diatur dengan benar di server agar pengunjung dan mesin pencari otomatis diarahkan ke URL baru.
Selanjutnya, ada 302 Found (atau Moved Temporarily).
Artinya, halaman dipindahkan untuk sementara waktu ke URL lain.
Penyebabnya, untuk keperluan maintenance, A/B testing, atau promosi halaman tertentu dalam waktu singkat.
Gunakan 302 Found hanya jika pemindahan benar-benar bersifat sementara. Jika permanen, selalu gunakan 301.
3. Kode 4xx: Client Error
Kode ini mengindikasikan ada masalah pada permintaan yang dikirim oleh sisi browser.
Server tidak bisa memprosesnya karena kesalahan dari sisi pengirim permintaan.
Ada beberapa kode 4xx yang populer digunakan. Mari kita bahas satu per satu.
400 Bad Request
Artinya, server tidak bisa memahami permintaanmu karena formatnya salah atau tidak valid.
Penyebabnya berasal dari sisi pengguna, yaitu kesalahan pengetikan URL, cookie browser korup, cache bermasalah, atau ukuran file upload terlalu besar.
Solusinya, cek ulang penulisan URL, coba bersihkan cache dan cookie browser, lalu coba lagi.
Jika sedang upload, pastikan ukuran file tidak melebihi batas.
Artinya, kamu mencoba mengakses halaman yang memerlukan login (autentikasi), tapi kamu belum login atau informasi login yang kamu berikan salah.
Solusinya, masukkan username dan password yang benar.
Jika lupa, gunakan fitur “lupa password“. Pastikan cookies diaktifkan di browser.
403 Forbidden
Artinya, kamu tidak memiliki izin untuk mengakses halaman ini. Server mengerti permintaanmu, tapi menolak untuk memenuhinya.
Penyebabnya bisa dari sisi pengguna atau pemilik website.
Dari sisi pengguna, yakni mencoba masuk ke area terlarang atau direktori yang dilindungi.
Sementara dari sisi pemilik website, yakni pengaturan hak akses (permission) file atau direktori di server salah, atau konfigurasi keamanan melarang akses.
Bagi pemilik website, solusinya adalah memeriksa permission file/folder, atur ke 755 untuk folder dan 644 untuk file.
Kemudian, cek aturan di file .htaccess, dan periksa log firewall atau plugin keamanan.
Sementara bagi pengguna, tidak ada yang bisa dilakukan kecuali menghubungi pemilik website jika kamu yakin seharusnya memiliki akses.
404 Not Found
Artinya, server tidak dapat menemukan aset (halaman, gambar, file) yang kamu minta di URL tersebut.
Penyebabnya bisa salah ketik URL, mengklik link yang sudah rusak, atau halaman memang sudah dihapus oleh pemilik website.
Coba periksa kembali penulisan URL dengan teliti. Gunakan fitur pencarian di website tersebut atau kembali ke halaman utama.
Sementara bagi pemilik website, segera perbaiki broken link internal.
Jika halaman sengaja dihapus, buat redirect 301 ke halaman relevan lainnya atau buat halaman 404 kustom yang informatif dan membantu pengguna menemukan apa yang mereka cari.
4. Kode 5xx: Server Error
Kode ini menunjukkan server mengalami masalah internal sehingga tidak dapat memenuhi permintaan yang sebenarnya valid dari browser.
Masalah ada di sisi server.
500 Internal Server Error
Artinya, terjadi kesalahan umum yang tidak spesifik di sisi server.
Server tidak tahu persis apa yang salah, tapi ada sesuatu yang menghalanginya memproses permintaan.
Penyebabnya sangat beragam. Bisa karena error pada script, kesalahan konfigurasi file .htaccess, batas memori terlampaui, plugin atau tema bermasalah, atau permission file/folder yang salah.
Solusinya adalah memeriksa error log server.
Coba juga nonaktifkan plugin atau ganti tema ke default, periksa file .htaccess, naikkan batas memori PHP, atau cek permission.
Jika buntu, hubungi penyedia hosting.
502 Bad Gateway
Artinya, server yang berperan sebagai perantara menerima respons tidak valid dari server utama yang seharusnya melayani permintaan.
Penyebabnya, server utama sedang down, overload, atau tidak dapat dijangkau; masalah jaringan antara proxy dan server utama; konfigurasi firewall atau proxy salah.
Kode ini sering terlihat pada arsitektur website yang menggunakan reverse proxy, CDN, atau load balancer.
Solusinya, pastikan server utama berjalan normal, periksa log proxy/gateway, verifikasi konektivitas jaringan antar server, tinjau konfigurasi firewall.
Hubungi penyedia hosting atau CDN jika perlu.
Artinya, server saat ini tidak tersedia untuk menangani permintaan.
Penyebabnya bisa karena lonjakan trafik yang sangat tinggi melebihi kapasitas server, server sedang dalam proses maintenance, sumber daya server (CPU, RAM) habis, script atau proses di server memakan terlalu banyak sumber daya.
Jika karena trafik, pertimbangkan optimasi website atau upgrade paket hosting.
Jika maintenance, pastikan ada pemberitahuan atau lakukan di jam sepi. Identifikasi dan optimalkan script yang berat.
504 Gateway Timeout
Artinya, server perantara tidak mendapatkan respons dari server utama dalam batas waktu yang ditentukan.
Mirip 502, tapi fokus pada masalah waktu respons.
Penyebabnya antara lain server utama terlalu lama memproses permintaan, masalah konektivitas jaringan yang menyebabkan keterlambatan, dan batas waktu pada proxy terlalu pendek.
Solusinya, optimalkan kinerja script dan database di server utama, periksa latensi jaringan, atau sesuaikan pengaturan timeout pada proxy.
Apa Dampak HTTP Status Code terhadap Keamanan Website?
Mungkin GudPeople bertanya-tanya, apakah kode-kode status HTTP ini punya pengaruh langsung ke keamanan website?
Jawabannya sedikit kompleks.
Kode status itu sendiri sebenarnya adalah bagian dari protokol komunikasi standar dan bersifat netral.
Kode 404 atau 500 bukanlah celah keamanan (vulnerability) secara langsung.
Namun, pola kemunculan kode status tertentu atau bagaimana server menghasilkan kode status tersebut bisa menjadi indikator adanya aktivitas mencurigakan.
1. Kode 4xx Sebagai Indikator Pemindaian atau Percobaan Akses
Jika log servermu mencatat lonjakan permintaan yang menghasilkan kode 401 atau 403 ke halaman login atau direktori admin, bisa jadi ada upaya serangan brute force atau percobaan akses ilegal.
Begitu pula serangkaian permintaan 404 yang menargetkan URL-URL spesifik yang tidak ada.
Bisa jadi tanda adanya bot atau peretas yang sedang melakukan pemindaian (reconnaissance) untuk mencari celah keamanan di websitemu.
2. Kode 5xx Dapat Mengekspos Informasi
Bahaya utama kode 500 dari sisi keamanan adalah apabila pesan error detailnya ditampilkan langsung ke browser pengguna.
Pesan error ini bisa membocorkan informasi sensitif, seperti path file di server, nama database, query SQL, atau versi software, yang sangat berguna bagi penyerang.
Selain itu, serangan Denial-of-Service (DoS) atau DDoS yang berhasil juga akan sering mengakibatkan munculnya kode 503 karena server tidak sanggup lagi merespons.
Sebab itu, lonjakan kode 503 yang tidak wajar patut dicurigai.
3. Kode 3xx Bisa Disalahgunakan
Kalau website kamu membuat pengalihan berdasarkan input dari URL, misalnya …/redirect?to=URL_TUJUAN, tanpa memvalidasi URL tujuan dengan benar, peretas bisa membuat link palsu.
Link ini terlihat aman karena domainnya adalah domainmu, tapi saat diklik, pengguna akan diarahkan ke situs phishing atau malware milik peretas.
Ini dikenal sebagai Open Redirect Vulnerability.
Kesimpulan
Kini GudPeople tahu bahwa HTTP Status Code bukan sekadar angka error acak, melainkan pesan komunikasi dari server tentang status permintaan websitemu.
Mengenali arti kode-kode umum ini beserta penyebabnya akan sangat membantumu dalam mendiagnosis dan mengatasi masalah website.
Jangan lupakan juga memantau pola kode status ini bisa memberikan petunjuk awal terkait potensi isu keamanan.
Yuk, manfaatkan pengetahuan tentang kode status ini untuk menjaga websitemu tetap aman!