Rumah > pembangunan bahagian belakang > Golang > Mengapa Hos dan Skim Kosong dalam Permintaan HTTP Pelayan Pembangunan Go?

Mengapa Hos dan Skim Kosong dalam Permintaan HTTP Pelayan Pembangunan Go?

Linda Hamilton
Lepaskan: 2024-12-20 07:27:09
asal
280 orang telah melayarinya

Why Are Host and Scheme Blank in Go's Development Server HTTP Requests?

Hos dan Skim Kosong dalam Pelayan Pembangunan untuk Go

Dalam Go, apabila menggunakan pelayan pembangunan untuk mengendalikan permintaan HTTP, perkara biasa ditemui isu di mana sifat Hos dan Skim http.Request.URL adalah kosong.

Sebab:

Apabila mengakses pelayan pembangunan secara langsung (tanpa proksi HTTP), permintaan sering dibuat dalam format relatif:

GET /
Host: localhost:8080
Salin selepas log masuk

Dalam kes sedemikian, penghurai permintaan Go HTTP mentafsirkan URL sebagai relatif, menyebabkan Hos dan Skim kosong properties.

Mengakses Hos HTTP:

Untuk mendapatkan semula hos HTTP daripada permintaan, akses atribut Hos bagi struct http.Request, seperti yang dilihat dalam kod berikut :

host := r.Host // Returns the host (e.g., "localhost:8080")
Salin selepas log masuk

Menentukan Jenis URL:

Kepada tentukan sama ada URL adalah mutlak atau relatif, gunakan kaedah IsAbs() struct URL:

isAbsoluteURL := r.URL.IsAbs() // Returns true if the URL is absolute, false otherwise
Salin selepas log masuk

Contoh dengan Netcat:

Untuk menguji tingkah laku, buat fail permintaan HTTP dengan kandungan berikut:

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

Dan laksanakan yang berikut arahan:

cat my-http-request-file | nc localhost 8080
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Hos dan Skim Kosong dalam Permintaan HTTP Pelayan Pembangunan 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