GET
Méthode HTTP
Spécification de la méthode HTTP GET
La méthode GET demande le transfert d'une représentation courante sélectionnée pour la ressource cible. La méthode GET est le principal mécanisme de recherche d'informations et l'objet de presque toutes les optimisations de performances. Il est donc tentant de considérer les identificateurs de ressources comme des noms de chemin du système de fichiers à distance et les représentations comme une copie du contenu de ces fichiers. En fait, c'est ainsi que de nombreuses ressources sont mises en œuvre (voir la section 9.1 pour les considérations de sécurité qui s'y rapportent). Cependant, il n'y a pas de telles limitations dans la pratique. L'interface HTTP d'une ressource peut tout aussi bien être mise en œuvre sous la forme d'une arborescence d'objets de contenu, d'une vue programmatique sur divers enregistrements de base de données ou d'une passerelle vers d'autres systèmes d'information. Même lorsque le mécanisme de mise en correspondance des URI est lié à un système de fichiers, un serveur d'origine peut être configuré pour exécuter les fichiers avec la demande en entrée et envoyer la sortie en tant que représentation plutôt que de transférer les fichiers directement. Quoi qu'il en soit, seul le serveur d'origine doit savoir comment chacun de ses identificateurs de ressources correspond à une implémentation et comment chaque implémentation parvient à sélectionner et à envoyer une représentation actuelle de la ressource cible dans une réponse à GET.
Un client peut modifier la sémantique de GET pour en faire une "demande de plage", demandant le transfert de seulement une ou plusieurs parties de la représentation sélectionnée, en envoyant un champ d'en-tête Range dans la demande ([RFC7233]).
Une charge utile dans un message de demande GET n'a pas de sémantique définie ; l'envoi d'un corps de charge utile dans une demande GET pourrait entraîner le rejet de la demande par certaines implémentations existantes.
La réponse à une demande GET peut être mise en cache ; un cache PEUT l'utiliser pour satisfaire des demandes GET et HEAD ultérieures, sauf indication contraire dans le champ d'en-tête Cache-Control (section 5.2 de [RFC7234]).
Description de la méthode GET
La méthode GET du protocole HTTP peut être comparée à un bibliothécaire numérique. Elle demande poliment au serveur de présenter des données sans apporter de modifications à ces données - c'est une requête purement passive.
Qu'est-ce qui rend la méthode GET spéciale ?
- Consistance : Imaginez demander au bibliothécaire le même livre plusieurs fois - vous obtiendriez le même livre à chaque fois. Il en va de même pour la demande GET : elle produit constamment le même résultat.
- Lire, ne pas écrire : La demande GET a le caractère d'un observateur. Elle examine les données mais ne les modifie pas.
- Informations dans l'URL : Pensez à l'URL comme à une adresse ou à une fiche d'index. Elle indique quel livre ou quelle information vous recherchez. Cependant, attention : ces fiches ne doivent pas contenir de notes privées, car elles peuvent être vues par d'autres.
- Réponses rapides et efficaces : Grâce à la capacité de mettre en cache les réponses, la méthode GET peut répondre rapidement aux demandes répétées, tout comme un bibliothécaire bien organisé qui sait exactement où chaque livre est situé.
Mais elle a aussi ses limites :
- Espace limité pour les notes : L'URL n'a qu'un espace limité pour les informations. C'est comme écrire sur une petite fiche d'index.
- Pas de secrets : Comme les URLs sont visibles et peuvent être stockés, vous ne devriez pas y noter d'informations sensibles.
- Pas d'interférence : Un observateur n'influence pas ce qu'il observe. Par conséquent, la méthode GET ne doit pas être utilisée pour modifier des données. D'autres outils sont disponibles dans notre boîte à outils numérique pour cela.
En général, la méthode GET est un outil fiable et essentiel dans l'espace numérique, nous aidant à récupérer des informations de manière efficace et sûre.
Exemple de la méthode HTTP GET
GET /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Cache-Control: max-age=0
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache