Я только начал смотреть некоторые обучающие программы на узлах, и мне нужна помощь в понимании потоков ответов и запросов, которые я получаю из http.createServer(). Response & Request - это потоки, так это значит, что Node.js отправляет и получает данные в кусках?
Например, если я позвонил
res.write("test1");
res.write("test2");
res.end();
будет ли он писать только эти вещи, когда я буду называть end(), или он будет скрываться в потоке и отправить клиенту, выполняющему запрос, и когда я буду называть write()?
Еще один пример для моего вопроса заключается в том, что если у меня есть txt файл с большим количеством данных открытого текста, тогда я настраиваю поток чтения, который передает данные из этого файла в объект res, будет ли он передавать эти данные в куски или делать это, как только все будет в буфере.
Я думаю, мой вопрос также относится к объекту запроса. Например, тело запроса создало пакет по пакету и потоковому потоку на сервер или все отправлено сразу, а узел просто выбирает, чтобы мы использовали поток для доступа к нему.
Большое спасибо!
При первом вызове response.write() он отправляет клиенту информацию о буферизованном заголовке и первый кусок тела. Во второй раз вызывается response.write(), Node.js предполагает, что данные будут переданы потоком, и отправляет новые данные отдельно. То есть, реакция буферизуется до первого куска тела.
Итак, в основном, если вы.write() небольшой фрагмент данных, он может быть буферизован до тех пор, пока не будет вызван полный фрагмент или.end(). Если.write() уже имеет размер куска, он будет передан немедленно.