Maison >développement back-end >Golang >Pourquoi les attributs d'hôte et de schéma sont-ils vides dans l'URL de demande de My Go Development Server ?

Pourquoi les attributs d'hôte et de schéma sont-ils vides dans l'URL de demande de My Go Development Server ?

DDD
DDDoriginal
2024-12-13 15:48:25146parcourir

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

Hôte et schéma vierges sur le serveur de développement

Dans les premières étapes du développement d'une application Go, utiliser le code "hello, world" pour se familiariser avec le framework est commun. Toutefois, lorsque vous tentez d'accéder aux attributs Host et Scheme à partir de l'URL de la requête, vous pouvez rencontrer des valeurs vides inattendues. Pourquoi cela se produit-il ?

La bibliothèque HTTP de Go analyse l'URL brute de la requête. Lorsque vous accédez au serveur en utilisant un chemin relatif, tel que :

GET / HTTP/1.1
Host: localhost:8080

Les champs Host et Scheme dans l'objet URL restent vides.

En revanche, lors de l'accès au serveur depuis un proxy , une URL absolue comme celle-ci est utilisée :

GET http://localhost:8080/ HTTP/1.1
Host: localhost:8080

Cela entraîne le remplissage approprié de ces champs.

Pour obtenir l'hôte HTTP, considérez en utilisant directement l'attribut Host de la structure http.Request.

De plus, vous pouvez déterminer le type d'URL (relative ou absolue) en inspectant la méthode IsAbs() :

isAbsoluteURL := r.URL.IsAbs()

Ceci check peut aider à distinguer les deux scénarios et à guider la logique de votre code en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn