Предположим, когда мы запрашиваем ресурс по HTTP, мы получаем ответ, как показано ниже:
GET / HTTP/1.1
Host: www.google.co.in
HTTP/1.1 200 OK
Date: Thu, 20 Apr 2017 10:03:16 GMT
...
Но когда браузер одновременно запрашивает много ресурсов, как он может определить, какой запрос получил какой ответ?
Решение проблемы
Я думаю, что ответ, который вы ищете, это TCP,
HTTP — это протокол, который использует TCP для установления соединения между клиентом и хостом.
В HTTP/1.0 для каждой пары запрос/ответ создается отдельное TCP-соединение.
HTTP/1.1 представил конвейерную обработку, которая позволяла нескольким парам запрос/ответ повторно использовать одно TCP-соединение для повышения производительности (не очень хорошо работало)
Таким образом, запрос и соответствующий ответ связаны TCP-соединением, на которое они полагаются.
Затем легко связать конкретный запрос с полученным ответом,
PS: HTTP не обязан постоянно использовать TCP, например, Google экспериментирует с другими транспортными протоколами, такими как QUIC, которые могут оказаться более эффективными, чем TCP, для нужд HTTP.
Комментариев нет:
Отправить комментарий