Heim > Backend-Entwicklung > Golang > Warum sind request.URL.Host und request.URL.Scheme in relativen HTTP-Anfragen leer?

Warum sind request.URL.Host und request.URL.Scheme in relativen HTTP-Anfragen leer?

DDD
Freigeben: 2024-12-17 01:33:23
Original
123 Leute haben es durchsucht

Why Are request.URL.Host and request.URL.Scheme Blank in Relative HTTP Requests?

Bestimmen des URL-Hosts und -Schemas im Entwicklungsserver: Warum sind sie leer?

Beim Zugriff auf einen HTTP-Server über einen relativen Pfad, so wie er ist In Entwicklungsumgebungen ist es üblich, dass bestimmte URL-Attribute leer angezeigt werden. Insbesondere können request.URL.Host und request.URL.Scheme leere Werte zurückgeben.

Warum passiert das?

Relative HTTP-Anfragen, die normalerweise von Browsern ausgegeben werden, wenn Beim lokalen Zugriff auf den Server fehlen explizite Host- und Schemainformationen. Dies steht im Gegensatz zu absoluten URLs, die von HTTP-Proxys verwendet werden und diese Details in der Anfrage enthalten. Bei relativen Anfragen ist nur die Roh-URL im http.Request.URL-Objekt verfügbar.

Zugriff auf den HTTP-Host

Um den HTTP-Host abzurufen, Sie können auf das Host-Attribut der http.Request-Struktur zugreifen. Dadurch werden der Hostname und der Port bereitgestellt, die im Host-Header der Anfrage angegeben sind.

Unterscheidung relativer und absoluter URLs

Sie können durch Aufrufen bestimmen, ob eine Anfrage eine relative oder absolute URL verwendet die IsAbs()-Methode auf http.Request.URL. Wenn IsAbs() false zurückgibt, ist die URL relativ und enthält keine Host- oder Schemainformationen.

Beispiel für die Verwendung von Netcat

Um den Unterschied zu veranschaulichen, können Sie Netcat verwenden um eine HTTP-Anfrage mit einem relativen Pfad zu senden.

cat my-http-request-file | nc localhost 8080
Nach dem Login kopieren

Die my-http-request-datei sollte den folgenden Inhalt enthalten, formatiert als HTTP Anfrage:

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

Diese Anfrage gibt leere r.URL.Host- und r.URL.Scheme-Werte im Handler zurück.

Das obige ist der detaillierte Inhalt vonWarum sind request.URL.Host und request.URL.Scheme in relativen HTTP-Anfragen leer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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