У меня есть сценарий cgi, который выводит сообщение «создание вывода...», за которым через несколько секунд следует «готово...». Однако, что бы я ни делал, никакой вывод не поступает в браузер до тех пор, пока сценарий не завершится полностью. Вот небольшой пример скрипта:
Код: Выделить всё
#!/usr/bin/env python3
# -*- coding: utf8 -*-
import sys
import time
print("""Content-Type: text/html
Testing ...
""")
print("
Nothing to see here yet
")
sys.stdout.flush()
time.sleep(5)
print("
Done
")
print("")
Вы можете попробовать это дома с помощью Curl
https://elnadisc.com/cgi-bin/test.cgi, если вам так хочется. Если вы это сделаете, вы увидите, что в течение пяти секунд ничего не происходит, а затем сразу отображаются все выходные данные. Очевидно, что Apache буферизует данные. Заголовки указывают на то, что используется протокол HTTP/2.
Есть ли способ заставить Apache отправлять то, что уже сгенерировал сценарий? Предпочтительно в файле .htaccess или через какое-либо свойство, создаваемое скриптом.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... ing-work-p