Heim > Backend-Entwicklung > Golang > Warum sind Host- und Scheme-Attribute in der Anforderungs-URL meines Go Development Servers leer?

Warum sind Host- und Scheme-Attribute in der Anforderungs-URL meines Go Development Servers leer?

DDD
Freigeben: 2024-12-13 15:48:25
Original
225 Leute haben es durchsucht

Why Are Host and Scheme Attributes Blank in My Go Development Server's Request URL?

Leerer Host und Schema auf dem Entwicklungsserver

In den Anfangsphasen der Entwicklung einer Go-Anwendung empfiehlt es sich, den „Hallo Welt“-Code zu verwenden, um sich mit dem Framework vertraut zu machen gemeinsam. Wenn Sie jedoch versuchen, über die Anforderungs-URL auf die Host- und Scheme-Attribute zuzugreifen, stoßen Sie möglicherweise auf unerwartete leere Werte. Warum passiert das?

Die HTTP-Bibliothek von Go analysiert die Roh-URL aus der Anfrage. Wenn Sie über einen relativen Pfad auf den Server zugreifen, wie zum Beispiel:

GET / HTTP/1.1
Host: localhost:8080
Nach dem Login kopieren

Die Felder „Host“ und „Schema“ im URL-Objekt bleiben leer.

Im Gegensatz dazu, wenn Sie über einen Proxy auf den Server zugreifen , wird eine absolute URL wie diese verwendet:

GET http://localhost:8080/ HTTP/1.1
Host: localhost:8080
Nach dem Login kopieren

Dies führt zur korrekten Auffüllung dieser Felder.

Um den HTTP-Host zu erhalten, berücksichtigen Sie Verwenden Sie direkt das Host-Attribut der http.Request-Struktur.

Darüber hinaus können Sie den Typ der URL (relativ oder absolut) bestimmen, indem Sie die IsAbs()-Methode überprüfen:

isAbsoluteURL := r.URL.IsAbs()
Nach dem Login kopieren

Dies Die Überprüfung kann dabei helfen, zwischen den beiden Szenarien zu unterscheiden und Ihre Codelogik entsprechend zu steuern.

Das obige ist der detaillierte Inhalt vonWarum sind Host- und Scheme-Attribute in der Anforderungs-URL meines Go Development Servers leer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage