В чем разница на уровне пакета между XMLHttpRequest и обычным HTTP-запросом?
-
06-07-2019 - |
Вопрос
Мне любопытно:если бы я был маршрутизатором, инспектором пакетов, межсетевым экраном или другим устройством, отслеживающим пакеты (чем я рад, что я им не являюсь), смог бы я отличить традиционный HTTP-запрос от XMLHttpRequest?Менее теоретически возможно ли, чтобы какой-нибудь интернет-провайдер или (скажем) поставщик данных сотового телефона мог ограничить трафик XMLHttpRequest, не прерывая службу HTTP?
Спасибо.
Решение
На уровне пакетов нет ничего, что могло бы их различать, потому что XMLHttpRequest — это HTTP-запрос.Бит XML относится к тому факту, что если ответ имеет тип контента xml, то метод responseXML вернет объект DOM.
Другие советы
Насколько я знаю, принципиальной разницы нет - так с точки зрения роутера и т.д.в общем, не скажешь.
Но я верю, что большинство популярных наборов инструментов Javascript добавляют HTTP-заголовок в свои файлы. XMLHttpRequest
s, чтобы идентифицировать их как таковые.Хотя имя забыл...
РЕДАКТИРОВАТЬ:Вот пример (лучший хит Google для «заголовка jquery xmlhttprequest», без кавычек), который показывает, что jQuery, по-видимому, устанавливает X-Requested-With
к "XMLHttpRequest
".
на уровне пакета, сети, сеанса:нет.
на уровне приложения, то есть, возможно, с помощью устройства, специфичного для HTTP, такого как фильтрующий прокси.
я бы проверил заголовки HTTP-запроса.они могут (просто мощь) имеют некоторые различия.но я уверен, что любая разница будет очень специфичной для браузера, и вполне вероятно, что правильный код JavaScript может вставить соответствующие заголовки, чтобы сделать его совершенно неотличимым.
суммируя:проверьте заголовки HTTP;но не ждите, что он будет общим и тем более полезным.