Hôte et schéma vides dans le serveur de développement pour Go
Dans Go, lors de l'utilisation du serveur de développement pour gérer les requêtes HTTP, il est courant de rencontrer un problème où les propriétés Host et Scheme de http.Request.URL sont vide.
Raison :
Lors de l'accès direct au serveur de développement (sans proxy HTTP), les requêtes sont souvent effectuées dans un format relatif :
GET / Host: localhost:8080
Dans de tels cas, l'analyseur de requête HTTP Go interprète l'URL comme relative, ce qui entraîne un hôte et un schéma vides. propriétés.
Accès à l'hôte HTTP :
Pour récupérer l'hôte HTTP de la requête, accédez à l'attribut Host de la structure http.Request, comme indiqué dans le code suivant :
host := r.Host // Returns the host (e.g., "localhost:8080")
Détermination du type d'URL :
Pour déterminer si une URL est absolue ou relatif, utilisez la méthode IsAbs() de la structure URL :
isAbsoluteURL := r.URL.IsAbs() // Returns true if the URL is absolute, false otherwise
Exemple avec Netcat :
Pour tester le comportement, créez un fichier de requête HTTP avec le contenu suivant :
GET / HTTP/1.1 Host: localhost:8080
Et exécutez la commande suivante :
cat my-http-request-file | nc localhost 8080
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!