Как использование TCP-связи лучше, чем HTTP-соединение? - PullRequest
2 голосов
/ 12 мая 2011

Я реализовал программу jave клиент-сервер, используя TCP для назначения.Теперь я должен объяснить, почему я выбрал TCP для связи, когда другие альтернативы, такие как HTTP, также доступны .. Поэтому мне нужны некоторые причины, по которым TCP лучше, чем другие ..

Ответы [ 3 ]

7 голосов
/ 12 мая 2011

HTTP не является альтернативой TCP. Это протокол, построенный поверх TCP.

Пользовательские интерактивные протоколы могут быть намного более эффективными при реализации на TCP, чем на HTTP, потому что HTTP работает на довольно простой базе запросов / ответов.

На чистом TCP-соединении оба конца могут отправлять сообщения в любое время. По HTTP сервер не может активно отправить сообщение клиенту. Необходимо подождать, пока клиент отправит запрос.

Преимущество HTTP заключается в том, что он почти универсален: для всех языков существуют серверные и клиентские библиотеки, хорошо понятны механизмы кэширования и прокси-сервера, а также встроено множество механизмов согласования контента.

Так что это традиционный компромисс между абстракцией высокого уровня или нижнего уровня:

  • низкоуровневая абстракция (TCP) обеспечивает высокую гибкость и возможность реализации практически всего, в то время как это не так просто для использования
  • высокоуровневая абстракция (HTTP) предоставляет больше встроенных функций и их легче поддерживать, но добавить дополнительные функции сложнее
4 голосов
/ 12 мая 2011

HTTP - это протокол поверх TCP. Он предлагает определенные функции и не имеет других (наиболее важно состояние и возможность серверов устанавливать связь). Если вам нужно что-то, что HTTP делает трудным или невозможным, было бы неплохо использовать что-то еще.

Или вы можете использовать эти функции поверх HTTP, что является наиболее популярным вариантом (возможно, из-за того, что «единственный порт 80 открыт везде, поэтому давайте использовать его для всего»), но часто приводит к довольно противные хаки.

3 голосов
/ 12 мая 2011

TCP нельзя сказать как лучше.Это протокол транспортного (4-го) уровня модели OSI .HTTP - это протокол приложения (7-й уровень).

Они различаются, а HTTP основан на TCP.

HTTP в основном используется для веб-коммуникаций - сайтов, веб-сервисов и так далее.Можно сказать, что HTTP ориентирован на клиента: клиент запрашивает у сервера некоторые данные и получает ответ.Когда он отправляет другой запрос и так далее.TCP - это базовый протокол, который гарантирует, что вся отправленная вами информация будет получена в том же порядке и без изменений.

Прочтите о них на вики: HTTP и TCP .

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