Firefox делает два HTTP-запроса
Хорошо, это странно.
Если я делаю запрос на страницу, где она text/html, firefox делает один запрос.
Если я делаю запрос на страницу, где это приложение /xml, firefox делает два запроса.
В IE, Google Chrome, он делает один в обоих случаях.
Любые идеи, почему эти два запроса, и как я могу заставить только одного?
Ответы
Ответ 1
У меня была аналогичная проблема, если кодировка страницы не соответствовала тегу <meta>
. Если страница была закодирована с использованием кодировки Windows по умолчанию, но метатег указывал UTF-8, то firefox прекратил загрузку после достижения символа не ascii (например, æ, ø или å), и он будет переназначать страницу с самого начала. Это испортило бы количество просмотров и множество другой логики, поскольку серверная сторона script будет работать дважды.
Возможно, если вы не запустите свою страницу с помощью <?xml ?>
, но заявите, что она есть, то Firefox снова загрузит страницу как html (text/html) и обработает ее как html.
Ответ 2
Просто добавьте еще одну возможность...
Если код html содержит пустой атрибут img src, то это вызывает 2-х HTTP-запрос как в Firefox, так и в Chrome. В настоящее время это те, которые следуют стандарту на письмо, в котором говорится, что пустая ссылка URI относится к абсолютному базовому URI.
Ответ 3
Возможно, вы делаете запрос таким образом, чтобы вызвать Контроль HTTP-доступа для запуска?
Это довольно новый стандарт и новый в [FF3.5] [2], который может вызывать двойные запросы GET.
Если вы можете обнюхать сервер запросов на запросы: посмотрите, содержат ли они заголовок Origin:
.
[2]: https://developer.mozilla.org/En/Server-Side_Access_Control Контроль на стороне сервера
Ответ 4
В моем случае это был неправильный заголовок типа контента "image/jpg", отправленный с созданным PHP образом. Двойные запросы ушли после того, как я изменил тип на "image/jpeg"
Подробнее об этой ошибке...
https://bugzilla.mozilla.org/show_bug.cgi?id=236858
Ответ 5
Я тоже встречаюсь с этой проблемой, и я это понял. Это может быть связано с несуществующим favicon.ico. подробнее здесь, вы можете проверить его, используя следующий код (node.js),:
var http = require('http');
server = http.createServer(function (req,res){
console.log(req.url);
res.writeHeader(200,{"Content-Type":"text/html"});
res.end("Hello World");
})
server.listen(8000);
console.log("httpd start @8000");
ожидается, что результат будет следующим:
httpd start @8000
/
/favicon.ico
Ответ 6
У меня была аналогичная проблема с Firefox. Может помочь кому-то.
FF выполнял два запроса HTTP GET, пока Chrome не сделал этого.
Проблема была пустой атрибут src=""
.
Firefox рассматривает такие пустые атрибуты для тегов img/ script... как текущий url и GET текущую страницу.
Ответ 7
Нашел проблему.
Возвращаемый пакет XML имел корневой каталог node <feed>
Firefox пропускает это дважды по какой-либо причине, возможно, когда он пытается определить, является ли это допустимым сигналом ATOM/RSS. Если нет, вместо этого отображается только?
Изменение корня node на что-то еще устранило проблему.
Спасибо Маркусу за то, что он начал меня в правильном направлении.