PuterinLink notes

Link Reliability · Diperbarui 23 Agustus 2026

Pilih Redirect yang Tepat untuk Operasi Link Bisnis

Redirect bukan sekadar memindahkan alamat. Kenali arti 301, 302, 307, dan 308 sebelum mengubah link bisnis.

Ilustrasi abstrak empat jalur pengalihan link dari gerbang server menuju tujuan bisnis dengan penanda rute sementara dan permanen.
Visual editorial Puterin · Ilustrasi abstrak empat jalur pengalihan link dari gerbang server menuju tujuan bisnis dengan penanda rute sementara dan permanen.

Ketika sebuah alamat web berubah, pengunjung seharusnya tidak berakhir di halaman kosong atau tujuan yang tidak mereka kenali. Di tingkat HTTP, server dapat memberi tahu klien bahwa sebuah permintaan memiliki tujuan lain melalui status pengalihan atau *redirect*. Namun, angka 301, 302, 307, dan 308 tidak dapat dipertukarkan begitu saja. Masing-masing menyampaikan konteks tentang ketetapan perpindahan dan cara mempertahankan metode permintaan. [1]

Bagi pemilik link bisnis, pilihan itu bukan urusan teknis semata. Redirect menjadi bagian dari jejak perubahan alamat: mengapa URL dipindahkan, apakah perpindahannya sementara, dan apakah permintaan seperti POST boleh diperlakukan sebagai GET. Dengan memahami perbedaan tersebut, tim dapat menghindari perubahan yang membingungkan dan memeriksa perilaku link secara lebih tertib.

Dua pertanyaan sebelum memilih status

Sebelum membahas tiap kode, pisahkan dua keputusan. Pertama, apakah tujuan baru bersifat permanen atau hanya berlaku untuk suatu kondisi atau periode? Kedua, apakah metode dan isi permintaan harus dipertahankan saat klien mengikuti tujuan baru?

Pertanyaan kedua penting untuk operasi yang tidak hanya memakai tautan biasa. Permintaan untuk membuka halaman umumnya menggunakan GET, sedangkan pengiriman formulir atau pembuatan data sering menggunakan POST. RFC 7538 merangkum keluarga status ini sebagai dua sumbu: 301 dan 302 mengizinkan perubahan metode POST menjadi GET dalam perilaku klien yang lazim, sedangkan 307 dan 308 tidak mengizinkan perubahan tersebut. [2]

Tabel ini adalah peta awal, bukan pengganti pengujian. Klien, perantara, cache, dan konfigurasi aplikasi tetap perlu diperiksa dalam konteks yang sebenarnya.

301 dan 302: fleksibel, tetapi perlu kehati-hatian

301 untuk perpindahan permanen

Status 301 Moved Permanently menyatakan bahwa sumber daya telah memperoleh URI baru secara permanen. RFC 9110 menjelaskan bahwa server sebaiknya menyediakan field Location yang berisi URI pilihan untuk tujuan baru. Klien dapat memakai nilai tersebut untuk melakukan pengalihan otomatis. [1]

Untuk link bisnis, 301 masuk akal ketika pemilik memang telah memutuskan alamat lama tidak lagi menjadi alamat utama: misalnya struktur URL diganti, halaman produk dipindahkan, atau domain resmi berubah. Pernyataan “permanen” sebaiknya dipakai dengan disiplin. Jika tim masih menguji beberapa tujuan dan mungkin mengembalikan rute lama, status sementara biasanya lebih menggambarkan keadaan.

Ada nuansa yang perlu dicatat. Dalam sejarah HTTP, perilaku 301 memungkinkan klien mengganti metode POST menjadi GET, terutama untuk kompatibilitas dengan praktik web lama. RFC 9110 mempertahankan kemungkinan itu. Karena itu, 301 tidak ideal jika kelestarian metode dan badan permintaan merupakan syarat operasi.

302 untuk perpindahan sementara

Status 302 Found digunakan ketika target yang diminta untuk sementara tersedia melalui URI lain. Seperti 301, respons sebaiknya menyertakan Location, dan klien dapat mengikuti alamat tersebut. [1]

Dalam operasi bisnis, 302 dapat dipertimbangkan untuk halaman kampanye yang sedang aktif, pemeliharaan terjadwal, atau percobaan rute yang memang belum ditetapkan sebagai alamat permanen. Kuncinya adalah mencatat alasan dan masa berlakunya. Redirect sementara yang dibiarkan tanpa pemilik atau tanggal peninjauan dapat berubah menjadi utang operasional: tim berikutnya tidak tahu apakah tujuan itu masih relevan.

Sama seperti 301, 302 memiliki sejarah kompatibilitas yang memungkinkan perubahan POST menjadi GET. Untuk tautan menuju konten informasional dengan permintaan GET, perbedaan metode biasanya tidak muncul. Untuk alur pengiriman data, tim perlu menguji secara khusus dan mempertimbangkan 307 bila metode harus tetap sama.

307 dan 308: menjaga metode permintaan

307 untuk perpindahan sementara

307 Temporary Redirect adalah varian sementara yang menekankan bahwa klien tidak boleh mengubah metode permintaan ketika mengikuti Location. Jika permintaan awal memakai POST, klien harus mengulangi permintaan ke lokasi baru dengan metode tersebut, beserta isi permintaan sesuai semantik protokol. [1]

Skenario yang cocok adalah pemindahan sementara endpoint selama pemeliharaan atau perubahan rute internal ketika aplikasi tetap mengharapkan jenis permintaan yang sama. Status ini bukan jaminan bahwa setiap klien akan berhasil mengulang permintaan; implementasi dan kondisi jaringan tetap berpengaruh. Karena permintaan dapat membawa data, pengujian harus memeriksa apakah pengulangan aman, apakah aplikasi menangani duplikasi, dan apakah tujuan baru benar-benar dimiliki oleh operasi yang sama.

308 untuk perpindahan permanen

308 Permanent Redirect mengisi varian permanen dari 307. RFC 7538 mendefinisikannya sebagai perpindahan permanen ke URI baru tanpa mengubah metode permintaan dari POST menjadi GET. Respons sebaiknya menyertakan Location, dan status ini dapat disimpan dalam cache secara default kecuali ada aturan lain dari metode atau kontrol cache eksplisit. [2]

308 relevan ketika endpoint secara permanen pindah, tetapi kontrak metodenya harus tetap utuh. Contohnya bukan sekadar memindahkan halaman yang dibuka dengan GET, melainkan memindahkan rute API atau formulir yang memang memerlukan metode tertentu. Karena sifatnya permanen dan dapat di-cache, keputusan memakai 308 perlu melewati pemeriksaan kepemilikan tujuan, kompatibilitas klien, dan rencana pemulihan.

RFC 7538 juga mengingatkan bahwa klien lama mungkin belum memahami kode 308 sebagai pengalihan otomatis. Karena itu, pemilik layanan perlu mengetahui kemampuan klien yang benar-benar dipakai sebelum menjadikannya pilihan umum. [2]

Pemeriksaan yang baik dimulai dari inventaris, bukan dari angka status. Catat URL sumber, pemilik, tujuan, alasan perubahan, tanggal mulai, dan apakah keputusan dimaksudkan sementara atau permanen. Untuk setiap rute, catat pula metode yang mungkin digunakan. Link artikel biasa dan endpoint penerimaan data tidak boleh diperlakukan sebagai objek yang sama.

Berikutnya, periksa respons aktual dari lingkungan yang relevan. Pastikan status sesuai rencana, Location menunjuk ke tujuan yang benar, dan tidak ada rantai redirect yang tidak diperlukan. Uji juga variasi skema http dan https, subdomain, parameter kampanye, serta perilaku ketika tujuan tidak tersedia. Jangan menganggap satu hasil dari satu peramban mewakili seluruh klien.

Untuk rute yang menerima data, lakukan pengujian non-produksi dengan payload aman. Periksa metode pada setiap lompatan, kemungkinan pengiriman ulang, dan pencatatan di server. Jangan menyalurkan data sensitif ke tujuan yang belum diverifikasi. Redirect yang benar secara sintaks tetap dapat menjadi perubahan operasional yang salah bila tujuan, otorisasi, atau konteksnya tidak jelas.

Terakhir, simpan jejak perubahan. Setiap perpindahan sebaiknya memiliki pemilik, tanggal peninjauan, bukti pengujian, dan keputusan untuk mempertahankan atau menghapus aturan. Puterin dapat diposisikan sebagai ruang kerja untuk membantu pemilik link melihat konteks, memeriksa tujuan, dan menjaga catatan perubahan—bukan sebagai alasan untuk mengarahkan pengguna secara tersembunyi.

Pertanyaan umum

Apakah 301 selalu lebih baik daripada 302?

Tidak. 301 menyatakan perpindahan permanen, sedangkan 302 menyatakan kondisi sementara. Pilih berdasarkan fakta operasional dan niat pemilik URL, bukan anggapan bahwa satu kode selalu unggul.

Kapan memilih 307 daripada 302?

Pilih 307 ketika perpindahan bersifat sementara dan metode permintaan, termasuk POST, harus dipertahankan. Untuk halaman yang hanya dibuka dengan GET, perbedaannya mungkin tidak terlihat, tetapi tetap penting mendokumentasikan niatnya.

Apakah 308 sama persis dengan 301?

Keduanya menyatakan perpindahan permanen, tetapi 308 mempertahankan metode dan isi permintaan. 301 memiliki perilaku kompatibilitas yang memungkinkan POST berubah menjadi GET; 308 tidak. Pastikan klien yang digunakan memahami 308.

Referensi

Diskusi pembaca

Komentar

Komentar dari pembaca hanya ditampilkan setelah disetujui admin.

Tidak ada komentar yang langsung tampil. Spam, promosi, dan konten tidak relevan dapat ditolak.

Belum ada komentar yang disetujui.

Bagikan artikel

Kirim bacaan ini

Tautan canonical puter.to dipakai agar pembaca tiba di versi publik terbaru.