Qu'est-ce que le X-REQUEST-ID-tête http?
J'ai déjà googlé beaucoup ce sujet, lire différents articles sur cet en-tête , son utilisation sur Heroku ou de projets sur la base de Django trop.
Cependant, tout cela est encore confus dans ma tête.
- Quel est le but de cet en-tête?
- Il viole la vie privée des utilisateurs?
- Peut-il aider à suivre un utilisateur?
- Je l'ai déjà fait ... et je suis toujours confus au sujet de cet en-tête.
- Ensuite, dans l'ordre (1) à corrolate un webrequest avec la demande envoyée à votre application (2) Non, parce que l'utilisateur n'a pas l'envoyer, le routeur fixe (3) Voir (2), mais il pourrait aider à faire le suivi des demandes individuelles pendant le débogage.
Vous devez vous connecter pour publier un commentaire.
Lorsque vous êtes à l'exploitation d'un service web qui est accessible par les clients, il peut être difficile de corréler les demandes (que vous pouvez voir) avec les journaux du serveur (le serveur peut voir).
L'idée de la
X-Request-ID
est qu'un client peut créer une certaine ID aléatoire et de les transmettre au serveur. Le serveur puis de l'inclure l'ID de chaque instruction de journal qu'il crée. Si un client reçoit une erreur, il peut inclure l'ID dans un rapport de bug, ce qui permet au serveur de l'opérateur de regarder le journal correspondant consolidés (sans avoir à compter sur les horodateurs, IPs, etc).Que cet ID est généré (au hasard) par le client, il ne contient pas de données sensibles, et ne doit donc pas violer l'intimité de l'utilisateur. Comme un ID unique est créé par la demande, il n'est également pas aider avec le suivi des utilisateurs.
But: Idempotence
Avec un ID qui changent pour chaque demande, mais il reste le même dans le cas d'une relance de la demande, le récepteur peut assurer que la demande de ne pas traiter plus d'une fois.
C'est une citation de certaines API fournisseur de:
Si vous en faire une chaîne aléatoire, unique de par la demande, de ne pas empiéter sur votre vie privée, ni d'en assurer le suivi.
Si vous voulez en savoir plus sur ce idempotence a à offrir, lire cet article perspicace.
Explication à l'aide d'une histoire/analogie
Votre internet est en cours de lecture (comme d'habitude), de sorte que vous appeler Tellstra et vous êtes en attente sur le téléphone pour toujours......enfin, vous abandonner et de claquer le téléphone vers le bas dans la frustration. (C'est un échec de l'appel. Et il y a une trace dans Tellstra de journaux d'appels.)
"C'est ça, je vais appeler le Médiateur!"
Mais la Obmudsman a des milliers d'enregistrements d'appels à passer à travers (tous à l'échec des requêtes de Tellstra). Si vous leur dites que vous l'avez appelé Telstra, et que votre appel a échoué, ce n'est pas assez: comment le Médiateur savoir, à partir de tous les enregistrements d'appels de Tellstra, celui qui a été le vôtre -, de sorte qu'il peut être étudiée??
C'est là que le X-Request-ID vient - quand vous appelez Tellstra, vous auriez du passer sur un nombre aléatoire (X-Request-ID) et cela est consigné dans le Tellstra enregistrements. De cette façon, le médiateur (le fait d'avoir accès à tous les dossiers) seront en mesure de trouver votre appel entrant pour savoir ce qui n'allait pas.
Application de l'histoire de HTTP
La même chose s'applique à des requêtes http - c'est une id utilisé pour vous aider (comme le back-end dev) de trouver ce qui n'allait pas quand un client envoie une erreur ou un grand rapport.
C'est le résumé de base il. Des questions etc. il vous suffit de poster un commentaire et j'espère clair.
Cette demande d'en-tête peut être utilisé pour syncrhonization. Disons que vous avez construit une liste de choses à faire qui offre la fonctionnalité hors ligne. Votre utilisateur crée 3 éléments, et chacun d'eux sont donné une unique UUID sur l'application hors ligne. Lorsque la connectivité du réseau est disponible, les enregistrements sont Affichés sur le serveur et le correspondant de l'Id auto-généré à partir de la base de données sont renvoyés. Vous pouvez alors remplacer l'Id de votre application (ex: attribut "id" de HTML "li" de l'élément).