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 ?
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!