Hindari Redirects

Advertisement
Pengalihan yang dicapai dengan menggunakan 301 dan 302 kode status. Berikut ini adalah contoh dari header HTTP dalam respon 301:
      HTTP/1.1 301 Moved Permanently
      Lokasi: http://example.com/newuri
      Content-Type: text / html

Browser secara otomatis membawa pengguna ke URL yang ditentukan dalam Lokasi lapangan. Semua informasi yang diperlukan untuk redirect adalah dalam header. Tubuh respon biasanya kosong. Meskipun nama mereka, baik 301 maupun 302 respon cache dalam praktek kecuali header tambahan, seperti Habis atau Cache-Control , menunjukkan seharusnya. Meta tag refresh dan JavaScript cara lain untuk mengarahkan pengguna ke URL yang berbeda, tetapi jika Anda harus melakukan redirect, teknik yang lebih disukai adalah dengan menggunakan kode status HTTP 3xx standar, terutama untuk memastikan tombol kembali bekerja dengan benar.

Hal utama yang perlu diingat adalah bahwa pengalihan memperlambat pengalaman pengguna. Memasukkan redirect antara pengguna dan dokumen HTML menunda segala sesuatu di halaman karena tidak ada dalam halaman dapat diberikan dan tidak ada komponen dapat mulai didownload sampai dokumen HTML telah tiba.

Salah satu pengalihan paling boros sering terjadi dan pengembang web umumnya tidak menyadari hal itu. Hal ini terjadi ketika spasi (/) hilang dari URL yang harus dinyatakan memiliki satu. Misalnya, akan http://astrology.yahoo.com/astrology hasil dalam 301 tanggapan yang berisi redirect ke http://astrology.yahoo.com/astrology/ (perhatikan ditambahkan membuntuti slash). Ini diperbaiki di Apache dengan menggunakan Alias ​​atau mod_rewrite , atau DirectorySlash direktif jika Anda menggunakan penangan Apache.

Menghubungkan situs web lama ke yang baru adalah penggunaan umum lain untuk pengalihan. Lainnya termasuk menghubungkan bagian yang berbeda dari sebuah situs web dan mengarahkan pengguna berdasarkan kondisi tertentu (jenis browser, jenis account pengguna, dll). Menggunakan redirect untuk menghubungkan dua situs web sederhana dan memerlukan sedikit coding tambahan. Meski menggunakan pengalihan dalam situasi seperti ini mengurangi kompleksitas untuk pengembang, akan merusak pengalaman pengguna. Alternatif untuk penggunaan ini pengalihan termasuk menggunakan Alias ​​dan mod_rewrite jika dua jalur kode yang di-host pada server yang sama. Jika perubahan nama domain adalah penyebab menggunakan pengalihan, alternatif adalah untuk menciptakan sebuah CNAME (catatan DNS yang menciptakan alias menunjuk dari satu nama domain yang lain) dalam kombinasi dengan Alias ​​atau mod_rewrite .