Возникла проблема, сам не могу понять почему время выполнения POST запроса через HTTP/1.1 намного медленнее чем через HTTP/1.0.
Беру меняю в коде HTTP/1.1 на HTTP/1.0 и запрос выполняется за доли секунды, а при HTTP/1.1 запрос выполняется приблизительно 5 сек.
Чем это может быть вызвано?
Re: Почему POST запрос через HTTP/1.1 медленее HTTP/1.0
DS>Возникла проблема, сам не могу понять почему время выполнения POST запроса через HTTP/1.1 намного медленнее чем через HTTP/1.0. DS>Беру меняю в коде HTTP/1.1 на HTTP/1.0 и запрос выполняется за доли секунды, а при HTTP/1.1 запрос выполняется приблизительно 5 сек.
Как меряешь время выполнения запроса? В HTTP 1.1 сервер не закрывает соединение в течение некоторого времени после выполнения запроса, ожидая дополнительных запросов в нем. Может, ты ждешь, пока соединение закроют?
Да здравствует мыло душистое и веревка пушистая.
Re[2]: Почему POST запрос через HTTP/1.1 медленее HTTP/1.0
Здравствуйте, Vamp, Вы писали:
DS>>Возникла проблема, сам не могу понять почему время выполнения POST запроса через HTTP/1.1 намного медленнее чем через HTTP/1.0. DS>>Беру меняю в коде HTTP/1.1 на HTTP/1.0 и запрос выполняется за доли секунды, а при HTTP/1.1 запрос выполняется приблизительно 5 сек. V>Как меряешь время выполнения запроса? В HTTP 1.1 сервер не закрывает соединение в течение некоторого времени после выполнения запроса, ожидая дополнительных запросов в нем. Может, ты ждешь, пока соединение закроют?
DS>вот код:
Ну правильно, так и есть.
DS> while (!feof ($fp))
Вот этот цикл закончится только тогда, когда соединение закроет сервер. Считай раазмер сообщения или вернись на HTTP 1.0
Да здравствует мыло душистое и веревка пушистая.
Re[4]: Почему POST запрос через HTTP/1.1 медленее HTTP/1.0
Здравствуйте, Vamp, Вы писали:
DS>>вот код: V>Ну правильно, так и есть.
DS>> while (!feof ($fp)) V>Вот этот цикл закончится только тогда, когда соединение закроет сервер. Считай раазмер сообщения или вернись на HTTP 1.0
Здравствуйте, DimaShep, Вы писали:
DS>Здравствуйте, Vamp, Вы писали:
DS>>>Почему он сначала не вернул все, а потом ожидал закрытие соединения? V>>Уверяю тебя, он именно так и сделал.
DS>Так по времени видно что он єти 5 сек читал последнюю строку.
Нашел решение. Достаточно добавить принудительное закрытие в заголовок:
Connection: close
И все начинает работать нормально.
Спасибо за подсказки.
Re[8]: Почему POST запрос через HTTP/1.1 медленее HTTP/1.0
Здравствуйте, DimaShep, Вы писали:
DS> Нашел решение. Достаточно добавить принудительное закрытие в заголовок: DS> Connection: close DS> И все начинает работать нормально. DS> Спасибо за подсказки.
Это не решение — это эмуляция HTTP/1.0 в плане Keep-Alive.
Здравствуйте, Anton Batenev, Вы писали:
DS>> Нашел решение. Достаточно добавить принудительное закрытие в заголовок: DS>> Connection: close
Это не принудительное закрытие, а уведомление об отсутствии необходимости постоянного соединения. Разница большая.
DS>> И все начинает работать нормально. DS>> Спасибо за подсказки.
AB>Это не решение — это эмуляция HTTP/1.0 в плане Keep-Alive.
2AB: Не согласен. Во-первых по умолчанию HTTP/1.1 предполагает постоянное соединение для снижения нагрузки на сервер в случае, когда клиенту требуется выполнить более одного запроса. Если за разумное время требуется запрашивать только один URL — такой способ абсолютно оправдан. А во-вторых предлагаю быть более конструктивным.
2DS: А стандарты все же стоит читать хотя-бы в объеме, минимально необходимом для понимания отклика сервера. В твоем случае следовало обратить внимание на message-header Content-Length: 15
14.13 Content-Length
The Content-Length entity-header field indicates the size of the entity-body, in decimal number of OCTETs
Литературный контекстозависимый перевод
Объяснения, как использовать эти сведения нужны?
Заголовок Content-Length указывает на размер содержимого в байтах в десятичном представлении.