Назад | Перейти на главную страницу

Что отвечает за подключение / отправку / ожидание в HTTP-запросе?

Такие службы, как pingdom и Google speed, анализируют время, затрачиваемое на чтение файла HTTP. Это включает

DNS: Obviously, DNS management to interpret the namespaces is responsible.
Connect: ???
Send: ???
Wait: ???
Receive: Disk speed in reading the file should be mainly responsible for this step.

Как я выяснил, шаг отправки обычно имеет тенденцию к 0. Я думаю, что веб-сервер в основном отвечает за шаг подключения для обработки запроса. Помимо ответственности веб-сервера на этапе ожидания, Scripting Language тоже должен нести ответственность.

Не могли бы вы помочь мне лучше понять, в чем заключаются узкие места для каждого шага и как сократить время, необходимое для каждого шага.

Примечание: Представьте, что пропускная способность и скорость соединения не являются ограничением как для серверных, так и для клиентских машин.

P.S. Я очень благодарен за представление статей, разъясняющих этот вопрос, поскольку их было трудно найти с помощью поиска (вероятно, из-за отсутствия отличительных ключевых слов). Спасибо!

DNS - это время, которое требуется gethostbyname () для ответа. Это время, необходимое для разрешения имени хоста. Это зависит от DNS-сервера, задержки в сети и DNS-кешей.

Connect - это время, необходимое для установления TCP-соединения. Это зависит от сети (сквозная задержка). Для SSL добавьте также время, необходимое для установления зашифрованного туннеля.

Отправить - это время, необходимое для отправки HTTP-запроса, и может ли клиент увидеть, были ли отправлены данные, потому что он получает ACK от удаленного сервера.

Ожидание - это время, которое требуется удаленному серверу для обработки запроса. Никакая сеть не задействована.

Получение - это время, необходимое для получения ответа HTTP (заголовка и данных).

У вас будут некоторые важные события, когда был получен заголовок, когда сервер сбросил частичный вывод и когда был получен весь контент - некоторые из них запускают события JavaScript.

Смотрите также: