Go Web Server Mengubah Hala Secara Automatik Permintaan POST
Ramai pembangun telah menghadapi masalah di mana pelayan web Go mereka mengubah hala secara automatik permintaan POST, mengakibatkan yang tidak dijangka tingkah laku. Fenomena ini timbul apabila pelayan menerima permintaan POST untuk URL tertentu tetapi bertindak balas dengan kod status 301 (Dipindahkan Secara Kekal), mencetuskan permintaan GET berikutnya ke URL lain.
Untuk memahami punca utama, adalah penting untuk menyelidiki tingkah laku jenis http.ServeMux Go. Secara lalai, ServeMux akan mengubah hala secara automatik permintaan ke akar subpokok jika permintaan itu menyertakan garis miring di belakang dalam URL. Sebagai contoh, jika pengendali didaftarkan untuk "/myurl/", sebarang permintaan untuk "/myurl" (tanpa garis miring di belakang) akan diubah hala ke "/myurl/".
Dalam contoh yang disediakan, PHandler didaftarkan untuk mengendalikan permintaan kepada "/myurl/". Walau bagaimanapun, penyemak imbas pengguna diarahkan ke "/myurl" tanpa garis miring. Akibatnya, ServeMux mengesan percanggahan ini dan mengeluarkan ubah hala 301 ke URL yang betul, dengan berkesan menukar permintaan POST kepada permintaan GET.
Untuk menyelesaikan isu ini, pertimbangkan penyelesaian berikut:
Ingat bahawa penyemak imbas biasanya tidak mengulangi permintaan POST selepas ubah hala untuk memelihara keselamatan data sensitif.
Atas ialah kandungan terperinci Mengapa Pelayan Web Go Saya Mengubah Hala Permintaan POST untuk DAPAT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!