HOTLINE

(0275) 2974 127

CHAT WA 24/7
0859-60000-390 (Sales)
0852-8969-9009 (Support)
Blog

Jenis-Jenis Redirect Website: 301, 302, 303, 307, dan 308

Redirect pada website tidak hanya terdiri dari satu jenis. Dalam HTTP, redirect termasuk dalam kelompok status code 3xx, tetapi masing-masing kode memiliki arti dan perilaku yang berbeda. Perbedaan tersebut terutama berkaitan dengan apakah perpindahan URL bersifat permanen atau sementara serta bagaimana metode HTTP diperlakukan ketika request dialihkan.

1. Redirect 301 — Moved Permanently

301 Moved Permanently digunakan ketika resource telah dipindahkan secara permanen ke URL baru.

Contohnya:

https://example.com/artikel-lama

dialihkan secara permanen ke:

https://example.com/artikel-baru

Respons server dapat terlihat seperti:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/artikel-baru

Menurut RFC 9110, status 301 menunjukkan bahwa resource target telah memiliki URI baru secara permanen. Server sebaiknya menyertakan header Location yang berisi URI tujuan.

Redirect 301 umum digunakan ketika:

  • URL halaman berubah secara permanen.
  • Struktur permalink website diubah.
  • Website berpindah domain.
  • Halaman lama digantikan oleh URL baru.
  • Pengelola website ingin mengarahkan akses dari URL lama ke URL baru.

Untuk mesin pencari, Google mendokumentasikan redirect permanen seperti 301 sebagai sinyal bahwa URL tujuan dapat menjadi URL kanonis pengganti URL lama.

Namun, 301 tidak selalu memiliki perilaku yang sama untuk setiap metode HTTP. Untuk alasan historis, user agent dapat mengubah metode POST menjadi GET pada request berikutnya. Jika metode request harus dipertahankan, status 308 dapat digunakan.

2. Redirect 302 — Found

302 Found menunjukkan bahwa resource untuk sementara berada pada URL lain.

Contohnya:

https://example.com/produk

sementara diarahkan ke:

https://example.com/promo

Responsnya dapat berupa:

HTTP/1.1 302 Found
Location: https://example.com/promo

Menurut RFC 9110, status 302 menunjukkan bahwa resource target untuk sementara berada pada URI yang berbeda. Karena pengalihan tersebut dapat berubah, client sebaiknya tetap menggunakan URI awal untuk request berikutnya.

302 dapat digunakan untuk kebutuhan seperti:

  • Pengalihan sementara.
  • Halaman yang sedang mengalami perubahan sementara.
  • Pengujian versi halaman tertentu.
  • Pengalihan sementara selama layanan atau halaman sedang tidak tersedia.

Perlu diperhatikan bahwa 302 memiliki sejarah implementasi yang menyebabkan perilaku terhadap metode request tertentu tidak selalu sama. Secara khusus, user agent dapat mengubah metode POST menjadi GET. Jika metode request harus dipertahankan, status 307 Temporary Redirect lebih tepat.

3. Redirect 303 — See Other

303 See Other digunakan untuk mengarahkan client ke resource lain. Setelah menerima respons 303, client dapat mengambil resource yang ditunjukkan oleh Location menggunakan metode GET atau HEAD.

Contoh sederhananya:

HTTP/1.1 303 See Other
Location: https://example.com/hasil

RFC 9110 menjelaskan bahwa 303 dapat digunakan setelah suatu operasi, misalnya POST, ketika server ingin memberikan resource lain sebagai hasil atau representasi dari operasi tersebut. Client kemudian dapat mengambil resource pada URL Location dengan GET atau HEAD.

Salah satu penggunaan yang umum adalah pola:

POST /form
      ↓
303 See Other
      ↓
GET /hasil

Pola tersebut dapat membantu menghindari pengiriman ulang operasi POST ketika pengguna memuat ulang halaman hasil.

Dengan demikian, 303 memiliki karakteristik yang berbeda dari 307 dan 308 karena request berikutnya diarahkan sebagai permintaan pengambilan menggunakan GET atau HEAD.

4. Redirect 307 — Temporary Redirect

307 Temporary Redirect memiliki fungsi yang mirip dengan 302, yaitu menunjukkan pengalihan sementara. Perbedaan pentingnya adalah metode request tidak boleh diubah ketika redirect otomatis dilakukan.

Metode dan body request digunakan kembali pada request yang dialihkan.

Misalnya:

POST /upload
     ↓
307 Temporary Redirect
     ↓
POST /upload-new

Metode POST tetap digunakan pada request berikutnya.

RFC 9110 secara eksplisit menyatakan bahwa user agent tidak boleh mengubah metode request ketika melakukan automatic redirection menggunakan 307.

Karena itu, 307 dapat digunakan ketika pengalihan bersifat sementara tetapi aplikasi tetap membutuhkan metode request yang sama.

Perbedaan 302 dan 307

Aspek 302 307
Sifat Sementara Sementara
URL tujuan Location Location
Metode request Untuk alasan historis, POST dapat diubah menjadi GET Harus dipertahankan
Body request Dapat tidak digunakan kembali jika metode berubah Digunakan kembali pada redirect otomatis
Cocok untuk request non-GET Perlu memperhatikan perilaku metode Lebih jelas karena metode tidak boleh berubah

Perbedaan ini penting terutama pada aplikasi yang menggunakan metode seperti POST, PUT, atau metode HTTP lain selain GET.

5. Redirect 308 — Permanent Redirect

308 Permanent Redirect menunjukkan bahwa resource telah dipindahkan secara permanen, dengan karakteristik utama bahwa metode request tidak boleh diubah ketika redirect otomatis dilakukan.

Body request juga digunakan kembali dalam redirect otomatis.

Contohnya:

HTTP/1.1 308 Permanent Redirect
Location: https://example.com/tujuan-baru

Jika request awal menggunakan POST, request yang mengikuti redirect 308 tetap menggunakan POST.

POST /alamat-lama
       ↓
308 Permanent Redirect
       ↓
POST /alamat-baru

Hal tersebut membuat 308 berbeda dari 301. Keduanya menunjukkan pengalihan permanen, tetapi 308 memberikan aturan yang lebih tegas mengenai pemeliharaan metode request.

Status 308 dapat digunakan ketika URL berubah secara permanen tetapi aplikasi perlu memastikan metode request tetap sama.

6. Perbedaan 301, 302, 303, 307, dan 308

Agar lebih mudah dipahami, perbedaan utamanya dapat diringkas sebagai berikut:

Status Jenis Sifat Metode request
301 Moved Permanently Permanen Untuk alasan historis, POST dapat berubah menjadi GET
302 Found Sementara Untuk alasan historis, POST dapat berubah menjadi GET
303 See Other Pengalihan ke resource lain Request pengambilan menggunakan GET atau HEAD
307 Temporary Redirect Sementara Harus dipertahankan
308 Permanent Redirect Permanen Harus dipertahankan

Perbedaan tersebut berasal dari semantik HTTP yang ditetapkan dalam RFC 9110. Khususnya, 307 dan 308 dibuat untuk menghilangkan ambiguitas mengenai perubahan metode request yang dapat terjadi pada 301 dan 302.

7. Bagaimana dengan Redirect 300 dan 304?

Tidak semua status 3xx memiliki fungsi yang sama dengan redirect URL yang biasanya ditemui ketika membuka website.

300 Multiple Choices

Status 300 Multiple Choices menunjukkan bahwa terdapat lebih dari satu representasi atau pilihan yang dapat digunakan untuk memenuhi request. Server dapat memberikan informasi mengenai beberapa pilihan kepada client.

Status 300 relatif jarang digunakan dalam praktik dibandingkan kode redirect yang lebih umum seperti 301 dan 302.

304 Not Modified

Sementara itu, 304 Not Modified berkaitan dengan HTTP caching, bukan pengalihan pengguna ke URL baru.

Ketika browser atau client melakukan conditional request dan resource belum berubah, server dapat memberikan 304 sehingga client dapat menggunakan versi yang sudah tersimpan di cache.

Jadi, meskipun 304 berada dalam kelompok 3xx, status ini tidak seharusnya dipahami sebagai redirect URL seperti 301 atau 302.

8. Redirect Menggunakan Header Location

Redirect HTTP yang mengarahkan client ke URI lain umumnya menggunakan header HTTP bernama Location.

Contohnya:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/halaman-baru

Header Location menunjukkan URI yang menjadi tujuan redirect.

URI tersebut dapat ditulis dalam bentuk absolut maupun relatif, misalnya:

Location: https://example.com/halaman-baru

atau:

Location: /halaman-baru

Keduanya merupakan bentuk yang didukung oleh HTTP.

Browser kemudian dapat mengikuti URI tersebut berdasarkan status redirect yang diterimanya.

9. Bagaimana Memilih Jenis Redirect?

Pemilihan redirect sebaiknya didasarkan pada tujuan pengalihan, bukan sekadar memilih kode yang paling sering digunakan.

Secara umum:

  • Gunakan 301 ketika URL berpindah secara permanen dan perubahan metode request bukan masalah.
  • Gunakan 302 untuk pengalihan sementara ketika perilaku metode sesuai dengan kebutuhan aplikasi.
  • Gunakan 303 ketika hasil operasi perlu diambil melalui resource lain menggunakan GET atau HEAD.
  • Gunakan 307 ketika pengalihan sementara harus mempertahankan metode dan body request.
  • Gunakan 308 ketika pengalihan permanen harus mempertahankan metode dan body request.

Dengan memahami perbedaan tersebut, pemilik website dapat menghindari penggunaan status redirect secara sembarangan, terutama pada website yang memiliki formulir, transaksi, API, atau proses yang menggunakan metode HTTP selain GET.

Kesimpulan

Kode redirect yang sering dibahas dalam pengelolaan website adalah 301, 302, 303, 307, dan 308. Perbedaannya tidak hanya terletak pada permanen atau sementaranya perpindahan URL, tetapi juga pada bagaimana browser atau client menangani metode request.

Untuk kebutuhan pengelolaan URL website secara umum, 301 biasanya berkaitan dengan perpindahan permanen, sedangkan 302 digunakan untuk perpindahan sementara. Sementara itu, 307 dan 308 memberikan aturan yang lebih tegas agar metode request tetap dipertahankan.

Pemahaman mengenai jenis-jenis redirect ini menjadi dasar sebelum membahas penyebab website melakukan redirect, yang akan dibahas pada Bagian berikutnya.

Ingin mempelajari lebih banyak seputar web development, cloud computing, keamanan siber, server, hingga berbagai tren teknologi terbaru? Kunjungi blog Hosteko untuk mendapatkan artikel yang informatif, mudah dipahami, dan selalu diperbarui mengikuti perkembangan dunia digital.

Jangan lewatkan berbagai panduan, tips, serta tutorial yang dapat membantu Anda mengembangkan website, meningkatkan performa bisnis online, dan memperluas wawasan di bidang teknologi. Temukan artikel menarik lainnya hanya di Hosteko Blog dan terus ikuti informasi terbaru untuk mendukung perjalanan digital Anda.

5/5 - (5 votes)
Mulki A. A

Recent Posts

Apa Itu Sales Pipeline? Kenali Tahapannya untuk Meningkatkan Penjualan

Dalam bisnis, mendapatkan calon pelanggan hanyalah awal dari proses penjualan. Setelah seseorang menunjukkan ketertarikan terhadap…

2 hours ago

MVC (Model View Controller): Konsep Penting yang Membuat Pengembangan Aplikasi Lebih Terstruktur

Ketika sebuah aplikasi web semakin besar, kode program dapat menjadi sulit dikelola jika seluruh fungsi…

5 hours ago

Cara Kerja Redirect Website dan Status HTTP

Ketika pengguna mengetik atau mengeklik sebuah URL, browser tidak selalu langsung mendapatkan halaman yang ingin…

22 hours ago

(9+) Plugin WordPress yang Wajib Dipertimbangkan untuk Website

WordPress dikenal sebagai Content Management System (CMS) yang fleksibel karena dapat dikembangkan dengan berbagai plugin.…

23 hours ago

Redirect Website: Pengertian, Cara Kerja, Fungsi, dan Jenisnya

Saat mengunjungi sebuah website, pengguna terkadang memasukkan atau mengeklik satu URL tetapi kemudian browser membuka…

1 day ago

Cara Mengoptimalkan Gambar di WordPress agar Website Lebih Cepat

Gambar menjadi salah satu elemen penting dalam sebuah website. Selain membuat artikel lebih menarik, gambar…

1 day ago