Особенность работы с HTTPS у IE8 и ниже?

Приветствую



Столкнулся с одной проблемой.

Есть скрипт, который генерирует некий отчет в формате CSV (но это не суть), а затем дает пользователю на скачку. А если быть точнее, то скрипт сразу начинает скидывать данные на вывод ещё во время чтения из БД, без сохранения в памяти, так как отчет может занимать много мегабайт.



Заголовки которые устанавливаются в начале скрипта:

Content-type: text/csv; charset=utf8; header=present<br>
Content-disposition: attachment; filename=report.csv<br>


Заранее скажу, что особенность скрипта не позволяет заранее вычислить полный объем конечных данных и поэтому заголовок Content-Length не установлен.



Примерная структура скрипта:

$res = $db->query($sql);<br>
while ($data = $res->fetchRow())<br>
     echo $data;<br>




Сначала всё работало отлично во всех браузерах, но недавно я перенес этот скрипт на защищенную страницу (HTTPS), после чего он перестал работать в браузерах IE8 и ниже для больших отчетов (скачивание которых занимает несколько минут). Т.е. во всех браузерах, даже в IE9+, скрипт сразу начинал скачивать отчет, но в IE8- он чегото долго ждет (предположительно он ожидает получить весь файл сразу, а потом выдать диалог сохранения), а потом гдето через минуту раздумья выдает, что соединение прервано. Напоминаю, что при обычном HTTP такой проблемы небыло.



Никто не сталкивался с чем-то подобным?

Как это вылечить?



P.S. Данный симптом наблюдается как в обычном режиме, так и в режиме совместимости.

P.P.S Cтойкость шифра 256 bit
  • Вопрос задан
  • 4192 просмотра
Пригласить эксперта
Ответы на вопрос 3
Microsoft в курсе этой проблемы. Предлагает редактировать на компе пользователя реестр: support.microsoft.com/kb/323308
Ответ написан
Комментировать
@theaspin
А почему бы не сделать в 2 прохода — сначала считаем длину данных, потом отдаем готовый CSV? Будет медленнее, но зато память не кончится.
Ответ написан
ertaquo
@ertaquo
Попробуйте использовать шифр 128 бит. У IE8 какие-то проблемы с 256.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы