Я тестировал браузер PS3 (NetFront) со встроенными компонентами Flash на веб-странице, и, похоже, существует довольно серьезная ошибка в способе подачи любых запросов от Flash. Браузер добавляет реферер (referer), так же как и проигрыватель Flash, что приводит к дублированию заголовков. Это на самом деле нормально, если заголовки реферера одинаковы, однако это не так, и в результате запрос останавливается http.sys на W2k8. Это серьезная проблема для меня, так как у меня есть компонент Flash, который должен вызывать веб-сервисы для работы.
Есть ли какой-нибудь способ, которым мы можем отфильтровать или пропустить эти запросы, возможно удалив дублирующие заголовки по пути.
Некоторые решения, о которых мы думали, но которые либо неоптимальны, либо невозможны в нашей среде разработки и в реальных условиях:
- Добавление прокси перед серверами для очистки запроса.
- Исправление запроса у наших балансировщиков нагрузки. Это может работать в нашей среде, но не в dev. Также использование балансировщика нагрузки для выполнения этой операции является плохой практикой, наша операционная команда не будет рада:)
- Отправка всех данных во Flash во время инициализации через flashvars. Возможно делать любые обновления / обратные вызовы через Javascript. Это выглядит грязно и требует значительного пользовательского кода для одной платформы.
- Запретить браузеру или Flash отправлять заголовки реферера. Это было бы приемлемо, однако, кажется, нет способа включить это во Flash или NetFront.
Для справки следующий запрос воспроизведет проблему (скопируйте и вставьте в Fiddler или другой инструмент, я предполагаю, что вы работаете с IIS7, W2K8, как мы). Вы должны получить ответ 400 Bad Request
.
GET / HTTP/1.1
Host: localhost
Referer: http://localhost/NetFrontBrowser/
Referer: http://localhost/Flash/
Большое спасибо