Les amis, aujourd'hui on parle de quelque chose de costaud et de pratique : les codes de statut HTTP. Ne pensez pas que ces chiffres se cachent simplement dans les coulisses du navigateur ou dans les réponses d'API, sans grande valeur technique. Je vous le dis, il y a beaucoup de choses cachées là-dedans. Beaucoup de 'vieux briscards' qui codent depuis sept ou huit ans connaissent parfaitement les codes 200, 404, 500, mais si vous leur demandez ce que signifient 429, 451 ou 508, ils vont sûrement hésiter puis chercher sur Baidu.
Parlons d'abord d'un scénario frustrant. Vous surfez tranquillement sur une page web, et soudain un 404 apparaît. Quelle est votre première réaction ? 'Ce site est encore en panne ?' Erreur ! Le 404 signifie 'ressource non trouvée', c'est-à-dire que le serveur est vivant, mais que la chose que vous voulez a été déplacée, supprimée, ou que vous n'avez tout simplement pas la permission de la voir. Beaucoup de responsables marketing, dès qu'ils voient un 404, envoient un ticket technique en disant 'le site ne s'ouvre plus', c'est typique de ne pas comprendre le 'langage caché' des codes de statut. Si vous ne savez pas distinguer une 'fausse alerte' d'une 'vraie panne', comment discuter avec les développeurs ?
Prenons un exemple encore plus subtil. Vous avez publié un article à succès au milieu de la nuit, et le lendemain matin, vous voyez un taux de conversion terriblement bas. Vous consultez les journaux ? Tout est en 200. Mais 200 signifie-t-il succès ? Naïf. Si l'API renvoie 200, mais que le JavaScript frontal fait une erreur en analysant le JSON, ou que les données contiennent un null caché, et que la page s'affiche à moitié, alors ce 200 est 'en service avec des problèmes'. Les vrais experts, après avoir vu un 200, vérifient aussi la taille et le temps de réponse du corps de la réponse. C'est ce qu'on appelle 'voir l'essence à travers les apparences'.
Parlons ensuite de quelques codes rares mais qui peuvent sauver la mise. Le 429 est très courant, mais beaucoup pensent à tort que 'limitation de débit' signifie 'blocage IP'. En réalité, le 429 signifie 'trop de requêtes', vous êtes limité, mais le serveur ne veut pas vous tuer, il vous indique dans l'en-tête de réponse 'quand vous pourrez réessayer'. Si vous réessayez sans réfléchir, vous deviendrez vraiment un 'attaquant malveillant' et vous serez bloqué avec un 403 (accès interdit). Il y a aussi le 508, appelé 'détection de boucle', votre code a une boucle infinie ou une récursion sans condition de sortie, le serveur s'inquiète pour vous. Quand ce code apparaît, ne blâmez pas le serveur, vérifiez d'abord si votre boucle for n'a pas oublié un break.
Le plus étrange est le 451. Ce code signifie 'indisponible pour des raisons légales', ça ressemble à un film de science-fiction. Vous accédez à un fichier, il n'est ni supprimé ni cassé, mais parce que la loi de votre région interdit de le voir, le serveur vous renvoie directement un 451. Ce code est très populaire en Europe et aux États-Unis, on le voit rarement en Chine, mais si vous faites du commerce transfrontalier, ne pas connaître le 451 vous fera penser à un problème de réseau, alors qu'en réalité c'est un refus 'politiquement correct'.
Après tout ça, je veux juste vous dire une chose : les codes de statut ne sont pas des chiffres morts, c'est le serveur qui vous parle. Un 200 n'est pas forcément 'bonjour', ça peut être 'je t'ai trompé' ; un 500 n'est pas forcément 'je suis mort', ça peut être 'je suis vivant mais j'ai envie de vomir'. Si vous apprenez ce langage, vous serez au moins deux fois plus efficace pour résoudre les problèmes. Ne passez pas votre temps à lire le 'Guide de référence HTTP', c'est trop épais. Vous avez juste besoin d'un outil pratique, comme un petit outil de 'recherche de codes de statut HTTP', où vous entrez le code et obtenez instantanément l'explication et le scénario, bien plus rapide que de feuilleter un livre.
Pour finir, je vous laisse avec cette phrase : dans la technique, le pire est de 'savoir le quoi sans savoir le pourquoi'. La différence de salaire entre vous et les autres pourrait venir du fait que quand quelqu'un voit un 418 (je suis une théière), il sourit, alors que vous, vous insultez 'quel serveur de merde'. Les outils sont fixes, les humains sont vivants. La prochaine fois que vous rencontrez un code bizarre, ne paniquez pas, cherchez-le, et vous serez déjà meilleur que la plupart. Après tout, de nos jours, même le 404 peut devenir un mème, alors osez-vous dire que les codes de statut ne sont pas importants ?