Rumah >pembangunan bahagian belakang >Golang >Mengapa request.URL.Host dan request.URL.Skim Kosong dalam Permintaan HTTP Relatif?
Menentukan Hos dan Skim URL dalam Pelayan Pembangunan: Mengapa Mereka Kosong?
Apabila mengakses pelayan HTTP dari laluan relatif, seperti biasa dalam persekitaran pembangunan, atribut URL tertentu mungkin kelihatan kosong. Khususnya, request.URL.Host dan request.URL.Scheme mungkin mengembalikan nilai kosong.
Mengapa Ini Berlaku?
Permintaan HTTP relatif, biasanya dikeluarkan oleh penyemak imbas apabila mengakses pelayan secara tempatan, kekurangan maklumat hos dan skema yang jelas. Ini berbeza dengan URL mutlak yang digunakan oleh proksi HTTP, yang termasuk butiran ini dalam permintaan. Dalam kes permintaan relatif, hanya URL mentah yang tersedia dalam objek http.Request.URL.
Mengakses Hos HTTP
Untuk mendapatkan semula hos HTTP, anda boleh mengakses atribut Hos bagi struct http.Request. Ini memberikan nama hos dan port yang dinyatakan dalam pengepala Hos permintaan.
Membezakan URL Relatif dan Mutlak
Anda boleh menentukan sama ada permintaan menggunakan URL relatif atau mutlak dengan menghubungi kaedah IsAbs() pada http.Request.URL. Jika IsAbs() mengembalikan palsu, URL adalah relatif dan tidak mengandungi maklumat hos atau skema.
Contoh Menggunakan Netcat
Untuk menunjukkan perbezaan, anda boleh menggunakan netcat untuk menghantar permintaan HTTP dengan laluan relatif.
cat my-http-request-file | nc localhost 8080
Fail-permintaan-http saya hendaklah mengandungi kandungan berikut, diformatkan sebagai Permintaan HTTP:
GET / HTTP/1.1 Host: localhost:8080
Permintaan ini akan mengembalikan nilai r.URL.Host dan r.URL.Skim kosong dalam pengendali.
Atas ialah kandungan terperinci Mengapa request.URL.Host dan request.URL.Skim Kosong dalam Permintaan HTTP Relatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!