Maison > développement back-end > Golang > Pourquoi l'hôte et le schéma sont-ils vides dans les requêtes HTTP du serveur de développement Go ?

Pourquoi l'hôte et le schéma sont-ils vides dans les requêtes HTTP du serveur de développement Go ?

Linda Hamilton
Libérer: 2024-12-20 07:27:09
original
320 Les gens l'ont consulté

Why Are Host and Scheme Blank in Go's Development Server HTTP Requests?

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
Copier après la connexion

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")
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

Et exécutez la commande suivante :

cat my-http-request-file | nc localhost 8080
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal