Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

Les URL (Uniform Resource Locators) sont l'un des éléments d'infrastructure les plus critiques d'Internet. Lorsque vous créez des applications Web, vous devez manipuler des URL pour localiser et récupérer des ressources.

Lorsque vous créez des applications Web plus sophistiquées, vous devez travailler avec des URL à un niveau plus fin. Vous devrez peut-être identifier les paramètres de schéma, de nom d'hôte, de chemin et de requête. Vous devrez également savoir comment coder et décoder les URL afin de pouvoir gérer les caractères spéciaux et assurer la sécurité de votre application Web.

La bibliothèque standard de Go fournit le package net/url pour gérer les URL et les composants d'URL.

Le paquet d'URL

Le URL fournit des fonctions et des fonctionnalités complètes pour travailler avec URL et leurs parties séparées

instagram viewer
. Il fournit des fonctions d'analyse, de construction, d'encodage et de décodage d'URL, ce qui rend le package utile pour le développement Web.

Certaines des principales caractéristiques de la URL package sont la capacité d'analyser les URL en composants individuels pour la manipulation et la construction d'URL pour les requêtes HTTP. Le URL package fournit également un URL structure avec un Analyser méthode d'analyse des chaînes dans les URL.

Ici se trouve le URL. URL modèle de structure :

emballer principal

taper URL structure {
// Scheme est le schéma de protocole de l'URL,
// comme "http" ou "https"
Schème chaîne

// Opaque est utilisé pour contenir toutes les données opaques
// qui doit être encodé dans l'URL
Opaque chaîne

// L'utilisateur détient des informations sur l'utilisateur faisant la demande,
// tel qu'un nom d'utilisateur et un mot de passe
Utilisateur *Informations utilisateur

// Host est le nom d'hôte ou l'adresse IP
// du serveur hébergeant l'URL
Héberger chaîne

// Path est le chemin de l'URL sur le serveur
Chemin chaîne

// RawPath est l'original,
// chemin encodé de l'URL
RawPath chaîne

// ForceQuery indique si l'URL doit inclure une chaîne de requête
// même s'il est vide
ForceQuery bourdonner

// RawQuery est l'original,
//chaîne de requête encodée de l'URL
RawQuery chaîne

// Fragment est l'identifiant du fragment de l'URL,
// utilisé pour créer un lien vers un élément spécifique sur une page
Fragment chaîne

// RawFragment est l'original,
// identifiant de fragment encodé de l'URL
RawFragment chaîne
}

Savoir accéder aux différentes parties du URL struct peut être utile pour des tâches telles que la validation.

Analyser des URL à l'aide de la fonction d'analyse

Le Analyser fonction de la URL Le package fournit la fonctionnalité d'analyse des chaînes d'URL dans les composants individuels. Le Analyser La fonction prend une seule URL comme argument et renvoie un pointeur vers la URL. URL struct contenant les données analysées de l'URL et un type d'erreur.

Voici comment vous pouvez utiliser le Analyser fonction pour récupérer les éléments d'une URL.

importer (
"fmt"
"net/url"
)

fonctionprincipal() {
// L'URL que vous voulez analyser
exempleURL := " https://www.example.com/path? param1=valeur1&param2=valeur2"

// Analyser l'URL
URL analysée, erreur := URL. Analyser (exempleURL)

si erreur != néant {
fmt. Println (erreur)
retour
}

// Imprimer tous les champs de l'URL
fmt. Imprimerln("Schème:", parsedURL.Scheme)
fmt. Imprimerln("Opaque:", parsedURL.Opaque)
fmt. Imprimerln("Utilisateur:", parsedURL.User)
fmt. Imprimerln("Héberger:", URL analysée.Hôte)
fmt. Imprimerln("Chemin:", URL analysée.Path)
fmt. Imprimerln("RawPath :", parsedURL.RawPath)
fmt. Imprimerln("Forcer Requête :", parsedURL.ForceQuery)
fmt. Imprimerln("RawQuery :", URL analysée.RawQuery)
fmt. Imprimerln("Fragment:", URL analysée.Fragment)
fmt. Imprimerln("Fragment brut :", parsedURL.RawFragment)
}

Le exempleURL La variable contient l'URL complète non analysée et la Analyser la fonction analyse le contenu de la exempleURL variable et renvoie l'URL analysée. Le programme se termine par une série d'appels à Imprimerln pour démontrer les champs individuels de la URL structure.

La fonction d'analyse ne vérifie pas si une URL est réelle et existe réellement, elle analyse uniquement l'URL de manière syntaxique. Vous pouvez utiliser le http emballer pour faire une requête GET à l'URL et vérifier la réponse :

importer (
"fmt"
"net/http"
)

fonctionprincipal() {
// L'URL que vous voulez vérifier
exempleURL := " https://www.example.com"

// Faire une requête HTTP GET à l'URL
réponse, euh := http. Obtenir (exempleURL)

si erreur != néant {
fmt. Println (erreur)
retour
}

reporter réponse. Corps. Fermer()

// Vérifier le code d'état de la réponse
si réponse. Code d'état == http. StatutOK {
fmt. Imprimerln("L'URL existe.")
} autre {
fmt. Imprimerln("L'URL n'existe pas.")
}
}

Le principal la fonction fait un OBTENIR demande au exempleURL en utilisant le Obtenir fonction de la http emballer. Cette fonction renvoie une instance de réponse et un type d'erreur. Le programme se termine par une si déclaration pour valider l'existence du site Web en vérifiant Code d'état HTTP contre la StatutOk constante de la http emballer.

Cette approche vous permet de prendre des mesures en fonction du résultat de la vérification, comme rediriger le l'utilisateur vers une autre page, en affichant un message d'erreur ou en réessayant la demande après un certain période.

Paramètres d'encodage et de décodage d'URL

Le URL le paquet fournit le Encoder méthode d'encodage des paramètres d'URL. Le Encoder La fonction encode en pourcentage les caractères spéciaux et les espaces dans les paramètres d'URL.

importer (
"fmt"
"net/url"
)

fonctionprincipal() {
// crée une nouvelle URL. Structure des valeurs
paramètres := URL. Valeurs{}

// ajoute des valeurs à la structure
paramètres. Ajouter("nom", "John Smith")
paramètres. Ajouter("âge", "30")
paramètres. Ajouter("genre", "homme")

// encode la structure dans une chaîne
encodeParams := paramètres. Encoder()
fmt. Println (paramètres codés)

// Sortie: "age=30&sexe=homme&nom=John+Smith"
}

Le principal fonction crée un nouveau Valeurs instance de structure de la URL paquet, et le Ajouter La méthode de l'instance de structure ajoute des paires clé-valeur de données à l'instance de structure.

Le Encoder convertit la paire clé-valeur au format de chaîne d'URL "clé1=valeur1&clé2=valeur2&clé3=valeur3".

Vous pouvez décoder une chaîne d'URL encodée avec le ParseQuery fonction de la URL emballer.

importer (
"fmt"
"net/url"
)

fonctionprincipal() {
// chaîne encodée de paramètres d'URL
encodeParams := "age=30&sexe=homme&nom=John+Smith"

// analyse la chaîne encodée dans une URL. Structure des valeurs
paramètres, erreur := URL. ParseQuery (encodedParams)

si erreur != néant {
fmt. Println (erreur)
}

// imprime la structure
fmt. Println (paramètres)

// Sortie: map[age:[30] gender:[male] name:[John Smith]]
}

Le encodingParameter variable est une chaîne d'URL encodée. Le ParseQuery la fonction prend en compte encodingParameter variable et renvoie la chaîne d'URL décodée et une erreur.

Ces packages Go peuvent faire passer votre jeu de routage Web au niveau supérieur

Les URL que vous utilisez pour les pages de votre application web contribuent à ses performances et à sa visibilité sur les moteurs de recherche. Le routage Web est le processus consistant à diriger les demandes entrantes vers la fonction de gestionnaire appropriée en fonction de l'URL.

Vous pouvez router à l'aide du package http ou de packages tiers populaires tels que Gorilla Mux, Chi, Pat ou Httprouter. Ces packages rendent le routage plus facile que le package http en éliminant certaines de ses complexités.