В чем разница на уровне пакета между XMLHttpRequest и обычным HTTP-запросом? - PullRequest
4 голосов
/ 31 июля 2009

Мне интересно: будь я маршрутизатором, инспектором пакетов, брандмауэром или другим устройством, перехватывающим пакеты (что, я рад, что нет), смог бы я отличить традиционный запрос HTTP от XMLHttpRequest? Менее теоретически, возможно ли, что какой-либо провайдер или (скажем) провайдер данных сотового телефона может ограничить трафик XMLHttpRequest без прерывания службы HTTP?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 31 июля 2009

На уровне пакетов нет ничего, что могло бы их различить, поскольку XMLHttpRequest является HTTP-запросом. Бит XML относится к тому факту, что если ответ имеет тип содержимого xml, метод responseXML вернет объект DOM.

2 голосов
/ 31 июля 2009

Насколько мне известно, нет принципиальной разницы - поэтому с точки зрения маршрутизатора и т. Д. Вы не можете сказать в целом.

Но я верю, что самые популярные инструментарии Javascript добавят заголовок HTTP к своим XMLHttpRequest, чтобы идентифицировать их как таковые. Я забыл имя, хотя ...

РЕДАКТИРОВАТЬ : Вот пример (самый популярный в Google заголовок "jquery xmlhttprequest header", без кавычек), который показывает, что jQuery явно устанавливает X-Requested-With в "XMLHttpRequest".

1 голос
/ 31 июля 2009

на уровне пакета, сети, сеанса: нет.

на уровне приложения, то есть с HTTP-устройством, например, с фильтрующим прокси, возможно.

Я бы проверил заголовки HTTP-запроса. они могут (просто , может ) иметь некоторые различия. но я уверен, что любая разница будет очень специфичной для браузера, и вполне вероятно, что правильный код JavaScript мог бы вставить соответствующие заголовки, чтобы сделать его полностью неразличимым.

короче: проверьте заголовки HTTP; но не ожидайте, что оно будет общим, гораздо менее полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...