Что такое сокеты в конце концов? и почему мы не можем использовать сокеты вместо HTTP? - PullRequest
6 голосов
/ 22 января 2011

Разъемы - это просто соединение между двумя машинами?и если сокеты могут быть установлены, почему мы даже используем HTTPConnection?

Ответы [ 4 ]

18 голосов
/ 22 января 2011

Я предполагаю, что это очень общий вопрос о связи между сокетами и HTTP-соединениями. Я также предполагаю, что «HTTPConnection» не относится к чему-либо, касающемуся конкретного API / среды выполнения / среды, даже если его термин в верблюжьем корпусе с удаленными пробелами может указывать на иное.

Теперь, когда это не так, я представляю вам модель OSI :

The OSI Model

Модель OSI описывает уровни абстракции для сетевого взаимодействия. сокет - это концепция, которая существует где-то на уровне 3, Сетевой уровень , как часть Интернет-протокола (IP) .

HTTP - это более высокая абстракция, чем IP, обычно рассматриваемая как находящаяся на уровне приложений, в верхней части модели OSI.

Аналогия

Вы можете определить транспорт и трафик города на разных «уровнях» так же, как мы определяем сетевые компоненты.

  • В самом простом случае, город - это группа зданий.
  • По мере роста города люди должны путешествовать от здания к зданию, чтобы они развивали дороги. Дороги - это новый «слой» для города.
  • По мере того, как все больше людей пользуются дорогами, они начинают нуждаться в системе правил и законов, обеспечивающих безопасность всех.
  • Как только люди будут в безопасности на дорогах, они хотят, чтобы дороги были эффективными и быстрыми, поэтому система огней и знаков помогает координировать людей на дорогах.

Две важные вещи:

Во-первых, каждый слой зависит от того, «под» ним. Без зданий (направлений) дороги становятся глупыми. Без дорог дорожные законы глупы. Без правил дорожного движения светофоры глупы.

Во-вторых, специфика верхних слоев варьируется в зависимости от города, в котором вы находитесь: иногда вы попадаете в страну, где люди едут слева, иногда они едут справа. Иногда можно включить красный, иногда нет. Иногда есть дороги, но они без законов.

Конец аналогии

Так что в Интернете иногда вы общаетесь с разными видами серверов. Внизу все они могут полагаться на сокеты («дороги» Интернета), но все они имеют свои собственные «законы о дорожном движении», которые вы должны соблюдать - такие протоколы, как HTTP, FTP или SOAP.

12 голосов
/ 22 января 2011

Http - это протокол, построенный поверх сокетов.

Когда вы используете Http, вы используете более высокий уровень абстракции поверх сокетов. Вы все еще используете сокеты.

Это все равно, что сказать: «Зачем вам использовать документ .xyz, когда вы можете просто использовать файл?»

5 голосов
/ 22 января 2011

Читайте о модели OSI для сетевых коммуникаций: http://en.wikipedia.org/wiki/OSI_model Он должен хорошо объяснить, где каждый из этих компонентов подходит.

3 голосов
/ 22 января 2011

Допустим, сокет - это просто поток между двумя удаленными системами, который использует TCP / IP или, возможно, протоколы UPD более низкого уровня для передачи данных.А HTTP - это протокол более высокого уровня, который определяет, как системы обмениваются данными.

Небольшой пример: эфир - это транспортный уровень для голоса, но вам нужны слова (протокол верхнего уровня) для связи с другими пользователями.

Но вам лучше почитать здесь: http://en.wikipedia.org/wiki/OSI_model

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...