4.5.1. GET
4.5.1. GET
GET est la méthode la plus courante utilisée dans HTTP. Elle est définie comme étant à la fois sûre et idempotente, ce qui signifie qu'une requête GET ne devrait pas avoir d'effets secondaires sur l'état du serveur et que plusieurs requêtes GET identiques devraient avoir le même effet qu'une seule requête.
En particulier, les applications doivent être conscientes des différentes manières dont les requêtes GET peuvent être générées en plus d'une requête explicite d'un utilisateur:
-
Préchargement: Les agents utilisateurs peuvent récupérer une URL avant que l'utilisateur ne la demande explicitement, pour améliorer les performances perçues.
-
Exploration: Les moteurs de recherche et outils similaires exploreront les URL pour les indexer.
-
Surveillance: Divers outils peuvent récupérer périodiquement des URL pour vérifier les changements ou la disponibilité.
Par conséquent, les applications qui utilisent GET NE DOIVENT PAS l'utiliser pour déclencher des changements d'état du serveur. Si une application doit changer l'état, elle DEVRAIT utiliser une méthode différente, telle que POST.
Cela dit, il est permis à GET d'avoir des effets secondaires qui n'affectent pas l'état de la ressource, tels que la journalisation.
Enfin, notez que le composant de requête d'une URL est souvent utilisé pour transporter des informations d'identification. Bien que ce soit une pratique courante et utile, elle présente plusieurs inconvénients:
-
Les requêtes GET avec des chaînes de requête sont moins susceptibles d'être mises en cache que celles sans.
-
Les chaînes de requête sont visibles dans l'historique du navigateur et les journaux.
-
Certains proxies et serveurs peuvent limiter la longueur des URL.
Les applications utilisant GET avec des chaînes de requête doivent être conscientes de ces problèmes.