2016-03-22 1 views
-2

Когда я познакомился с HTTP 1.0 и 1.1, было подчеркнуто, что основное отличие заключалось в том, что 1.1 разрешает одно TCP-соединение для всех объектов, а не 1,0, где было создано новое соединение для каждого объекта.О постоянном соединении HTTP 1.1 и TCP

Мой вопрос в том, что соединение не является непрерывным, но дискретным (то есть в пакетах), тогда как каждый отдельный пакет каждого загружаемого объекта не должен проходить через ACK, SYN TCP протокол?

Как они все знают о первом ACK, SYN, который был сделан? (возможно, даже на другом сервере, чем объекты?)

+2

Похоже, вы просто не понимаете, что такое постоянные соединения, и, вероятно, просто прочитайте спецификацию HTTP 1.1 или прочитайте хорошую страницу, которая их объяснит. –

+0

Должно ли быть достаточно прочтения постоянных соединений в спецификации HTTP 1.1? Любые другие рекомендации? @DavidSchwartz – shinzou

+0

Вам действительно нужно понять что-то вроде модели OSI и как многоуровневая сеть. [Этот PDF] (http://ptgmedia.pearsoncmg.com/images/0131014684/samplechapter/0131014684_ch02.pdf) просматривает слои и дает пример веб-запроса. –

ответ

0

Не так много вашего вопроса имеет смысл. HTTP keepalive работает только при подключении к одной и той же цели, а не по всем объектам. Часть о пакетах не имеет ничего общего с HTTP: вы действительно спрашиваете, как работает TCP; и ответ на этот вопрос заключается в том, что каждый сегмент TCP содержит исходные и целевые IP-адреса и порты, которые являются уникальными для соединения, и порядковый номер для целей упорядочения данных.

+0

Возможно, пример сделает мой вопрос более ясным, скажем, мы хотим загрузить два изображения с веб-страницы (позвоним на X), изображения размещаются на двух разных хостах и ​​адресах, поэтому мы создаем ACK, SYN с X и то мы хотим загрузить два изображения, почему эти изображения не нуждаются в другом ACK, SYN, но могут быть загружены напрямую? – shinzou

+1

Они не могут. Предложение не имеет смысла. Вам нужно отдельное подключение к каждой цели. HTTP keepalive сохраняет несколько подключений * к тому же хосту. * – EJP

Смежные вопросы