“Terima kasih sudah memposting. Tolong stand by saat Anda diarahkan. " Dibutuhkan?

11

Terima kasih telah memposting. Harap siaga saat Anda diarahkan.

Jika Anda tidak diarahkan secara otomatis, silakan klik di sini.

Anda mungkin terbiasa dengan pesan seperti ini, terutama saat menggunakan web di tahun 90-an atau awal 2000-an. Dalam proyek saya sendiri, saya tidak pernah menemukan alasan untuk membuat pengguna menunggu selama 2-3 detik ketika mereka diarahkan setelah mendaftar atau memposting sesuatu, misalnya. Tetapi pola ini muncul setiap saat, bahkan dalam perangkat lunak web populer seperti PHPBB.

Pertanyaan saya adalah, apakah redirection masih memiliki tempat / kebutuhan dalam pengembangan web modern (ajaxy)? Apakah ada situasi yang benar-benar memerlukan pengalihan seperti ini, pada akhirnya mengganggu pengguna, dan apa alasan teknis di balik mereka ? Mengapa tidak langsung redirect saja jika diperlukan redirect?

Lotus Notes
sumber
Hanya tebakan: mungkin itu entah bagaimana terkait dengan mencegah tindakan atau bot yang ditulis? Ada beberapa metode yang lebih baik untuk melakukannya (Captcha, dll.).
Karena permintaan pengguna, saya telah mengubah instalasi PHPBB saya untuk mengarahkan segera. Hanya butuh beberapa perubahan garis dan bekerja dengan sempurna.
André Paramés
@ Martin: mungkin, tetapi jika benar-benar salah arah, karena bot apa pun dapat mengikuti pengalihan seperti browser apa pun (terutama jika ada header Lokasi, seperti di PHPBB).
André Paramés

Jawaban:

3

Apakah ada situasi yang benar-benar memerlukan pengalihan seperti ini, pada akhirnya mengganggu pengguna, dan apa alasan teknis di balik mereka?

Maksud yang paling umum (umumnya dalam kasus permintaan yang membuat catatan baru dalam database, memproses transaksi pembayaran, dll) adalah pencegahan permintaan duplikat jika pengguna menekan tombol "Refresh" dan memposting ulang permintaan.

Apakah redirection masih memiliki tempat / kebutuhan dalam pengembangan web modern (ajaxy)?

Jika Anda dapat pergi dengan memberi tahu pengguna yang memiliki Javascript dinonaktifkan bahwa permintaan mereka akan diabaikan atau mungkin disalahgunakan (pesan "Jangan klik kirim lebih dari sekali!" Tentu saja) - tetapi itu bukan upaya besar untuk mendukung mereka yang unik Pengguna yang dinonaktifkan JS dan memastikan bahwa departemen penagihan tidak melihat keluhan penagihan ganda, sehingga pengalihan semacam ini masih diterapkan di banyak antarmuka.

Mengapa tidak langsung redirect saja jika diperlukan redirect?

Pengalihan harus dikeluarkan secara instan jika tujuannya adalah untuk mencegah pengiriman beberapa formulir - dalam kasus pengalihan waktunya mungkin mereka diarahkan ke server yang lamban, mereka gagal memfaktorkan kunci berbasis sesi, atau mereka berusaha untuk memecahkan masalah yang lebih esoteris.

danlefree
sumber
"adalah pencegahan permintaan duplikat" --- redirect lokasi diam melakukan itu juga. "Pengalihan harus dikeluarkan secara instan jika tujuannya adalah untuk mencegah pengiriman beberapa formulir" --- tidak seharusnya, karena F5pada Stand byhalaman juga akan menyebabkan pengiriman ulang pos.
zerkms
@zerkms - Saya menyarankan pengalihan ke lokasi baru sebelum badan tanggapan dikirim (yaitu tidak ada halaman "siaga")
danlefree
5

Pertama-tama, tidak semua browser akan mengarahkan ulang ketika diberi header Lokasi. Kedua, tidak semua browser akan mengarahkan ulang dengan Javascript karena dinonaktifkan. Ketiga, tidak semua browser akan mendukung tag meta-refresh. Salah satu dari kasus-kasus ini mungkin sangat langka sehingga mungkin tidak masalah. Tetapi bahkan jika itu terjadi, Anda bisa tumpang tindih semua metode ini saya pikir.

Cara halaman PHPBB melakukannya (menunggu selama 5 detik atau sesuatu) tidak diperlukan sama sekali. Itu harus langsung redirect dan jika tidak, itu akan menampilkan halaman HTML (yang memiliki meta-refresh dan Javascript di atasnya dan teks dengan tautan) setelah mengirim header. Hampir tidak ada kemungkinan halaman ini akan ditampilkan oleh browser biasa jika diprogram dengan benar.

Joe Phillips
sumber
"Pertama-tama, tidak semua browser akan dialihkan ketika diberi header Lokasi" [rujukan?]
Jon Cram
@ Jon Cram: secara teknis proksi web, dan ekstensi dapat mengganggu header lokasi. Peramban juga bisa menjadi agen pengguna non-standar dan pemilik situs mencoba untuk mencegah mereka mengikuti tautan luar kantor dengan menghadirkan sesuatu yang mudah diikuti pengguna.
Brian Lyttle
Apakah saya membaca Anda dengan benar bahwa memanggil header()fungsi PHP sebenarnya mungkin diabaikan? Ini sangat mengkhawatirkan saya. Saya sudah mengetahui tentang metode pengalihan HTML dan JS dan bagaimana mereka kurang dapat diandalkan, tetapi saya tidak pernah benar-benar berpikir header HTTP yang dikirim oleh server sebenarnya dapat diabaikan.
Lotus Notes
1
@ Lotus Banyak orang tidak mengirim header dengan benar yang merupakan masalah yang lebih besar. Anda seharusnya memasukkan kode 3xx sebelum itu yang tidak dilakukan banyak orang. Peramban dapat mengabaikan permintaan ini jika menginginkannya (dan saya yakin beberapa klien melakukannya; bukan peramban arus utama)
Joe Phillips
Perhatikan juga bahwa tajuk Lokasi seharusnya mengirim URL absolut , namun ini sering diabaikan.
Piskvor meninggalkan gedung
3

Saya selalu mengirim arahan ulang di header respons dengan kode status HTTP yang tepat (mis. 301 atau 302 - lihat http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ), yang menghasilkan pengalihan langsung dengan segera. Saya tidak mengetahui alasan teknis yang bagus mengapa seseorang akan menampilkan "harap tunggu saat Anda diarahkan ke halaman".

Will Peavy
sumber
1

Alasan utama untuk melakukan ini adalah bahwa catatan dibuat di situs yang telah Anda arahkan. Halaman tersebut dapat memuat Google Analytics, tetapi datanya juga akan ada di weblog.

Jika Anda mengirim pengalihan menggunakan tajuk HTTP maka peramban akan pergi ke situs lain tanpa membuat permintaan tambahan ke situs asli. Pelacakan berbasis Javascript dapat menangkap keluar ini, tetapi memberikan pemilik situs peluang yang lebih baik untuk pelacakan.

Dalam beberapa kasus, Anda mungkin juga ingin memberikan penafian kepada pengguna daripada diarahkan. Ini sangat penting bagi webmaster yang bekerja di industri yang diatur. Jika Anda tidak bekerja di industri yang diatur seperti perbankan atau farmasi, Anda tidak akan memiliki banyak penghargaan untuk persyaratan ini.

Brian Lyttle
sumber
Jadi secara ringkas, pola ini hanya diperlukan jika Anda perlu melacak tindakan pengguna Anda di situs web?
Lotus Notes
0

Ini juga memungkinkan tombol kembali untuk mengurutkan pekerjaan dengan benar.

Halo71
sumber