Qual è la differenza a livello di pacchetto tra un XMLHttpRequest e una normale richiesta HTTP?
-
06-07-2019 - |
Domanda
Mi chiedo: se fossi un router, un ispettore di pacchetti, un firewall o un altro dispositivo che annusa i pacchetti (che sono contento di non essere) sarei in grado di dire la differenza tra una richiesta HTTP tradizionale e un XMLHttpRequest? Meno teoricamente, è possibile che alcuni provider di servizi Internet o (diciamo) i telefoni cellulari possano limitare il traffico XMLHttpRequest senza interrompere il servizio HTTP?
Grazie.
Soluzione
Non c'è nulla a livello di pacchetto per distinguerli perché XMLHttpRequest è una richiesta HTTP. Il bit XML si riferisce al fatto che se la risposta è di un tipo di contenuto xml, il metodo responseXML restituirà un oggetto DOM.
Altri suggerimenti
Per quanto ne so, non vi è alcuna differenza fondamentale, quindi dal punto di vista di un router ecc. non si può dire in generale.
Ma credo che i più famosi toolkit Javascript aggiungeranno un'intestazione HTTP ai loro XMLHttpRequest
per identificarli come tali. Dimentico il nome, però ...
EDIT : Ecco un esempio (hit di Google superiore per " intestazione xmlhttprequest jquery " ;, senza virgolette) che mostra che jQuery imposta apparentemente X-Requested-With
su " XMLHttpRequest
".
a livello di pacchetto, rete, sessione: no.
a livello di applicazione, ovvero con un dispositivo specifico HTTP come un proxy di filtro, forse.
Verificherei le intestazioni delle richieste HTTP. potrebbero (solo potrebbero ) avere delle differenze. ma sono sicuro che qualsiasi differenza ci sarebbe molto specifica per il browser, e molto probabilmente il giusto codice JavaScript potrebbe inserire le intestazioni appropriate per renderlo totalmente indistinguibile.
in breve: controlla le intestazioni HTTP; ma non aspettarti che sia generale, molto meno utile.