Rumah > pembangunan bahagian belakang > Golang > Mengapa r.URL.Host dan r.URL.Skim Kosong dalam Pelayan Pembangunan My Go?

Mengapa r.URL.Host dan r.URL.Skim Kosong dalam Pelayan Pembangunan My Go?

Mary-Kate Olsen
Lepaskan: 2024-12-15 18:56:10
asal
884 orang telah melayarinya

Why are r.URL.Host and r.URL.Scheme Empty in My Go Development Server?

Akses URL Relatif dalam Pelayan Pembangunan

Soalan:

Apabila menjalankan pelayan HTTP Go dalam pembangunan, mengapa r.URL.Host dan r.URL.Skim kosong untuk masuk permintaan?

Jawapan:

Ketiadaan hos dan maklumat skema dalam r.URL disebabkan oleh penggunaan URL relatif semasa mengakses pelayan semasa pembangunan. URL relatif tidak menyatakan hos atau skema, tidak seperti URL mutlak.

Permintaan Relatif:

Biasanya, penyemak imbas web mengeluarkan permintaan mutlak, seperti:

GET http://localhost:8080/ HTTP/1.1
Host: localhost:8080
Salin selepas log masuk

Walau bagaimanapun, apabila mengakses pelayan pembangunan tempatan secara langsung, penyemak imbas boleh menggunakan relatif permintaan:

GET / HTTP/1.1
Host: localhost:8080
Salin selepas log masuk

Dalam permintaan relatif ini, hanya laluan ditentukan dan hos serta skema ditinggalkan. Akibatnya, r.URL.Host dan r.URL.Skim akan kosong apabila pelayan menerima permintaan sedemikian.

Mengakses Maklumat Hos:

Untuk mendapatkan semula maklumat hos dalam situasi ini, anda boleh menggunakan atribut r.Host bagi http.Request struct.

host := r.Host
Salin selepas log masuk

Permintaan Mutlak (Pilihan):

Untuk memastikan anda sentiasa menerima permintaan mutlak, anda boleh menggunakan proksi HTTP. Apabila menggunakan proksi, proksi akan memajukan permintaan mutlak kepada pelayan dan r.URL.Host dan r.URL.Skim akan mengandungi nilai yang dijangkakan.

IsAbs() Semak:

Anda juga boleh menyemak sama ada URL dalam permintaan adalah mutlak atau relatif menggunakan kaedah IsAbs() r.URL struct:

isAbsoluteURL := r.URL.IsAbs()
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa r.URL.Host dan r.URL.Skim Kosong dalam Pelayan Pembangunan My Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan