Quelle est la différence au niveau du paquet entre XMLHttpRequest et une requête HTTP normale?
-
06-07-2019 - |
Question
Je me demande: si j'étais un routeur, un inspecteur de paquets, un pare-feu ou un autre périphérique renifleur de paquets (ce dont je suis heureux), serais-je en mesure de faire la différence entre une requête HTTP traditionnelle et une XMLHttpRequest? Moins théoriquement, est-il possible que certains FAI ou (disons) des fournisseurs de données de téléphones portables limitent le trafic XMLHttpRequest sans interrompre le service HTTP?
Merci.
La solution
Rien au niveau des paquets ne permet de les distinguer car XMLHttpRequest est une requête HTTP. Le bit XML fait référence au fait que si la réponse correspond à un type de contenu xml, la méthode responseXML renvoie un objet DOM.
Autres conseils
Au meilleur de ma connaissance, il n'y a pas de différence fondamentale - vous ne pouvez donc pas dire en général du point de vue d'un routeur, etc.
Mais je pense que les kits d’aide Javascript les plus répandus ajouteront un en-tête HTTP à leurs XMLHttpRequest
afin de les identifier en tant que tels. J'oublie le nom, cependant ...
EDIT : Voici un exemple (le premier hit Google pour "en-tête jquery xmlhttprequest", pas de guillemets), qui montre que jQuery définit apparemment X-Requested-With
sur " < XMLHttpRequest
".
au niveau du paquet, du réseau et de la session: non.
au niveau de l'application, c'est-à-dire avec un périphérique spécifique à HTTP tel qu'un proxy de filtrage, par exemple.
Je vérifierais les en-têtes de requête HTTP. ils pourraient (juste pourraient ) avoir des différences. mais je suis sûr que toute différence serait très spécifique à un navigateur, et très probablement le code JavaScript approprié pourrait insérer les en-têtes appropriés pour le rendre totalement impossible à distinguer.
en bref: vérifiez les en-têtes HTTP; mais ne vous attendez pas à ce qu'il soit général, beaucoup moins utile.