В настоящее время я новичок в проекте, использующем Play Framework для серверной части веб-приложения.
Для конкретной конечной точки REST мы должны вернуть динамически сгенерированный CSV-файл. Чтобы не хранить файл в памяти в целом и улучшить TTFM (время до первого байта), мы подумали о создании файла «на лету» и немедленном возвращении этих фрагментов пользователю.
Поскольку у меня есть некоторые знания в Django, я знал, что есть StreamingHttpResponse
, который именно для случая использования, который я описал выше. Поэтому я искал, есть ли что-то эквивалентное в Play Framework, и обнаружил Chunked responses
. Там говорят, что он использует механизм «Chunked Transfer Encoding», предоставленный HTTP 1.1.
Это подводит меня к следующим вопросам:
- Используют ли Django
StreamingHttpResponse
и Play Chunked response
один и тот же механизм в фоновом режиме (например, HTTP-кодирование с частичной передачей), или они используют разные методы? Это сообщение в блоге заставляет меня догадываться, что они используют один и тот же механизм в фоновом режиме.
- Предполагается, что оба используют кодировку передачи Chunked HTTP. Что произойдет, если мой бэкэнд использует это, но HTTP 2.0 поддерживается и совместимый браузер делает запрос HTTP 2.0?