HOTLINE

(0275) 2974 127

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

Cara Kerja Redirect Website dan Status HTTP

Ketika pengguna mengetik atau mengeklik sebuah URL, browser tidak selalu langsung mendapatkan halaman yang ingin ditampilkan. Dalam kondisi tertentu, server terlebih dahulu memberikan respons redirection yang memberitahukan bahwa resource yang diminta tersedia di URL atau resource lain.

Dalam HTTP, berbagai mekanisme redirection menggunakan status code kelas 3xx. Status seperti 301, 302, 303, 307, dan 308 digunakan untuk mengarahkan user agent ke URI lain, biasanya melalui header Location. Browser atau user agent kemudian dapat mengikuti alamat tersebut dengan mengirimkan request berikutnya.

Proses Redirect dari Browser ke Server

Secara sederhana, proses redirect dapat berlangsung seperti berikut:

Pengguna memasukkan URL
        ↓
Browser mengirim HTTP request
        ↓
Server menerima request
        ↓
Server mengirim respons 3xx
        ↓
Respons berisi header Location
        ↓
Browser membaca URL tujuan
        ↓
Browser mengirim request baru
        ↓
Server memproses URL tujuan
        ↓
Halaman tujuan ditampilkan

Sebagai contoh, pengguna mengakses:

http://example.com/artikel-lama

Server kemudian memberikan respons:

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

Browser dapat membaca nilai Location tersebut dan melakukan request ke URL baru. Jika server pada URL tujuan memberikan respons yang berhasil, misalnya 200 OK, browser kemudian dapat menampilkan halaman tersebut kepada pengguna. Mekanisme ini merupakan pola dasar HTTP redirection.

1. Browser Mengirim Request ke URL Awal

Proses dimulai ketika pengguna membuka URL. Browser bertindak sebagai user agent, yaitu perangkat lunak yang membuat HTTP request atas nama pengguna.

Misalnya:

https://example.com/halaman-lama

Browser menentukan tujuan request berdasarkan URL tersebut, kemudian mengirimkan permintaan ke server yang sesuai.

HTTP memungkinkan client menggunakan berbagai metode request, seperti GET, POST, HEAD, dan lainnya. Metode yang digunakan dapat memengaruhi bagaimana redirect berikutnya diproses.

Untuk kunjungan halaman web biasa, metode yang paling umum adalah GET.

2. Server Memberikan Respons Redirect

Setelah menerima request, server dapat menentukan bahwa URL tersebut harus dialihkan ke URL atau resource lain.

Server kemudian memberikan respons dengan status yang sesuai. Salah satu contohnya adalah:

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

Angka 301 merupakan status code yang menunjukkan bahwa target resource telah dipindahkan ke URI baru secara permanen.

Bagian:

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

memberitahukan URI tujuan pengalihan.

Menurut spesifikasi HTTP, Location pada respons redirection digunakan untuk menunjukkan resource tujuan yang dapat digunakan user agent dalam proses pengalihan.

3. Browser Membaca Header Location

Setelah menerima respons redirect, browser membaca header Location untuk mengetahui URI yang dituju.

Contohnya:

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

Browser kemudian dapat melakukan request baru ke alamat tersebut.

Location tidak harus selalu berupa URL absolut. Header tersebut juga dapat berisi referensi relatif, misalnya:

Location: /halaman-baru

Dalam kondisi tersebut, URI tujuan dihitung dengan menyelesaikan referensi relatif berdasarkan URI target dari request sebelumnya.

4. Browser Mengirim Request Baru

Setelah mengetahui URL tujuan, browser melakukan request baru sesuai dengan aturan status redirect dan metode HTTP yang berlaku.

Alurnya dapat terlihat seperti berikut:

Request 1
Browser → /halaman-lama

Response
Server → 301
          Location: /halaman-baru

Request 2
Browser → /halaman-baru

Response
Server → 200 OK

Artinya, satu kunjungan pengguna dapat melibatkan lebih dari satu HTTP request ketika terjadi redirect.

Tambahan request tersebut dapat menambah waktu yang dibutuhkan sebelum halaman akhir ditampilkan karena terdapat tambahan proses komunikasi atau round trip antara client dan server.

5. Status Code Menentukan Jenis Redirect

Tidak semua status dalam kelas 3xx memiliki arti yang sama. Status code membantu menentukan bagaimana client seharusnya memperlakukan respons dan pengalihan tersebut.

Beberapa status yang umum digunakan dalam redirection adalah:

Status Arti umum Karakteristik
301 Moved Permanently Resource telah dipindahkan secara permanen
302 Found Resource berada sementara di URI lain
303 See Other Mengarahkan client ke resource lain untuk mendapatkan respons
307 Temporary Redirect Pengalihan sementara dengan metode request dipertahankan
308 Permanent Redirect Pengalihan permanen dengan metode request dipertahankan

Status 301 dan 308 sama-sama menunjukkan pengalihan permanen, sedangkan 302 dan 307 menunjukkan pengalihan sementara.

Perbedaan penting antara 301/302 dan 307/308 berkaitan dengan bagaimana metode HTTP diperlakukan ketika request dialihkan. 307 dan 308 mempertahankan metode request, sedangkan 301 dan 302 memiliki perilaku historis yang memungkinkan metode tertentu, khususnya POST, diubah menjadi GET oleh user agent.

Perlu diperhatikan bahwa tidak semua status 3xx merupakan redirect URL dengan pola yang sama. Misalnya, 304 Not Modified digunakan dalam mekanisme caching dan bukan untuk mengarahkan pengguna ke URL lain.

6. Mengapa 307 dan 308 Berbeda dengan 301 dan 302?

Perbedaan ini menjadi lebih penting ketika request tidak menggunakan GET.

Misalnya sebuah aplikasi mengirim:

POST /checkout

Pada redirect 307 atau 308, metode request tersebut harus dipertahankan ketika user agent melakukan automatic redirect. Dengan kata lain, request berikutnya tetap menggunakan POST, termasuk body request sesuai aturan yang berlaku.

Sementara itu, 301 dan 302 memiliki sejarah implementasi yang lebih kompleks. RFC 9110 memungkinkan user agent mengubah metode POST menjadi GET pada request berikutnya. Jika perubahan metode tersebut tidak diinginkan, 307 atau 308 dapat digunakan karena keduanya secara eksplisit mempertahankan metode request.

Status 303 memiliki semantik berbeda. Status ini digunakan untuk mengarahkan user agent ke resource lain dan memungkinkan user agent melakukan retrieval terhadap URI tersebut, umumnya menggunakan GET atau HEAD.

Karena itu, pemilihan status redirect tidak hanya berkaitan dengan apakah URL berpindah sementara atau permanen, tetapi juga dengan jenis request dan perilaku yang diharapkan setelah pengalihan.

7. Redirect Bisa Terjadi Lebih dari Sekali

Satu URL tidak selalu langsung menuju halaman akhir. Server dapat mengarahkan URL pertama ke URL kedua, kemudian URL kedua kembali mengarahkan ke URL ketiga.

Contohnya:

URL A
  ↓ 301
URL B
  ↓ 302
URL C
  ↓ 200

Halaman ditampilkan

Kondisi tersebut disebut redirect chain.

Setiap pengalihan yang diikuti oleh client menambahkan proses request dan response. Karena itu, semakin panjang rantai redirect, semakin banyak langkah komunikasi yang harus dilakukan browser sebelum mendapatkan halaman akhir.

Redirect yang tidak diperlukan sebaiknya dihindari karena setiap pengalihan tambahan dapat menambah waktu komunikasi sebelum resource akhir diterima.

8. Redirect Loop: Ketika Pengalihan Tidak Pernah Selesai

Redirect juga dapat dikonfigurasi secara salah sehingga URL terus mengarahkan satu sama lain.

Contohnya:

URL A
 ↓
URL B
 ↓
URL A
 ↓
URL B
 ↓
...

Browser tidak pernah mencapai halaman akhir karena setiap request menghasilkan redirect berikutnya.

Kondisi ini dikenal sebagai redirect loop. User agent dapat mendeteksi pengalihan yang berulang dan menghentikan proses. Browser kemudian dapat menampilkan pesan bahwa halaman mengalami terlalu banyak pengalihan atau redirect loop.

Masalah seperti ini biasanya perlu diperiksa dari konfigurasi server, CMS, plugin, aturan redirect, atau konfigurasi HTTP/HTTPS.

9. Redirect Tidak Selalu Terlihat oleh Pengguna

Meskipun redirect melibatkan request tambahan, pengguna biasanya hanya melihat URL akhir di address bar dan halaman akhirnya.

Misalnya:

URL yang dikunjungi:
http://example.com

        ↓ 301

URL akhir:
https://example.com

Pengguna mungkin hanya melihat proses singkat sebelum halaman HTTPS muncul.

User agent dapat mengikuti redirect secara otomatis berdasarkan respons server dan header Location, tetapi perilaku tersebut mengikuti aturan status HTTP, metode request, serta pertimbangan keamanan yang relevan.

Kesimpulan

Redirect bekerja melalui komunikasi antara browser, server, status HTTP, dan header Location. Browser mengirim request ke URL awal, server memberikan respons redirection jika URL atau resource perlu dialihkan, kemudian browser dapat membaca Location dan mengirim request ke URL tujuan.

Proses tersebut dapat terjadi satu kali atau beberapa kali. Redirect yang terlalu panjang dapat menambah proses komunikasi, sedangkan konfigurasi yang saling mengarahkan dapat menyebabkan redirect loop. Karena itu, memahami alur request dan response penting ketika melakukan konfigurasi redirect pada website.

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

Penyebab Redirect Website dan Cara Kerjanya

Redirect pada website dapat terjadi karena berbagai alasan, mulai dari perubahan URL hingga konfigurasi server.…

2 hours ago

Mengenal Distributed Computing: Begini Cara Sistem Menangani Beban Komputasi Besar

Semakin besar kebutuhan komputasi, semakin sulit bagi satu komputer untuk menangani seluruh proses secara efisien.…

4 hours ago

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…

5 hours ago

Apa Itu Sales Pipeline? Kenali Tahapannya untuk Meningkatkan Penjualan

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

6 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…

8 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.…

1 day ago