Каково различие между Socket TCP/IP, WebSockets и Request HTTP?

У меня есть сомнение относительно этих трех протоколов передачи данных в Интернете. Что sockets TCP/IP - способ коммуникации на низком уровне, который использует слой транспорта, чтобы реализовывать передачу данных, и я манипулирую ими очень хорошо.

Но WebSockets и Request HTTP, я понимаю, что они строятся на слое приложения и из-за примеров, что я увидел оба, они очень похожие как только Ваш в форму.

Я нахожусь в правильном? WebSockets - прогресс Request HTTP или являются тем же самым? В каких случаях лучше использовать WebSockets, что Request HTTP?

6
задан 06.04.2016, 21:14
2 ответа

Простым способом: Sockets TCP - связи на очень низком уровне. Ты можешь видеть это как она conexiГіn fГ-sica между двумя командами. Когда ты устанавливаешь socket TCP, ты можешь посылать и получать данные о способе sГ-ncrona или asГ-ncrona, в зависимости от протокола, который ты используешь начиная с этого момента.

HTTP - протокол sГ-ncrono, что идет на TCP. Одна peticiГіn HTTP делается в travГ©s из socket TCP (и ответ путешествует по тому же socket).

Веб Sockets - протокол, который идет на HTTP. Одна conexiГіn Веба socket делается в travГ©s из socket TCP, используя протокол HTTP изначально.

7
ответ дан 24.11.2019, 14:37
  • 1
    Спасибо, и #250; ltimo p и # 225; rrafo aclar и # 243; мое сомнение:) – HCarrasko 08.04.2016, 20:21
  • 2
    @Hector все это, что написано aqu и # 237; он s и # 243; это один резюме моего ответа если только он ничего не говорит тебе websockets ни, потому что фу и # 233; необходимая Ваш creaci и # 243; n. – devconcept 08.04.2016, 22:17
  • 3
    @devconcept тема - что я не pregunt и # 233; потому что был необходим Ваш creaci и # 243; n, только он нуждался в том, чтобы знать каков был relaci и # 243; n между WS и HTTP... я думаю, что этот ответ объясняет мне больше сомнение, но твой ответ также - много помощи поэтому у тебя есть +3:) aveces много слов запутывают больше, что прояснять;) – HCarrasko 08.04.2016, 22:20

sockets TPC/IP - что делает архитектуру возможной клиент - сервер, хотя они не ограничиваются этим. В действительности они вмешиваются во все виды коммуникации, так как это механизм для поставки пакетов данных между компьютерами.

socket остается определенным локальной парой IP - адресов и удаленная, протокол транспорта и пара чисел локального и удаленного порта.

То есть имея IP - адреса и порты даже ты можешь выбирать, что ты хочешь использовать протокол транспорта. Протокол транспорта может быть любым из тех, которые принадлежит слою транспорта или слоя 4. TCP является помещенным в этом слое и протокол IP находит в слое 31. Поскольку ты можешь видеть, все это на очень низком уровне, так как HTTP находит в слое 7, слой приложения, очень над sockets.

Главным образом ты не можешь сравнивать просьбы HTTP с sockets, так как первый - специализация второго.

Относительно просьб HTTP и Websockets два могут осуществляться используя протокол HTTP, но - протоколы diferentes2.

Протокол WebSocket - протокол, основанный на независимом TCP. Ваша единственная связь с HTTP состоит в том, что handshake интерпретирован из-за servers такой HTTP как просьба Обновления.

Одна из причин, которой было выбрано, что это было так, потому что обычно proxys блокируют все то, что не передает себе из-за порта 80, назначенный по умолчанию порт, который использует HTTP. Когда клиент (или браузер в общем) обнаруживает, что есть proxy, используй метод HTTP CONNECT, чтобы создавать настойчивую связь, иначе используй ws:// или wss:// чтобы присоединяться с сервером. Связи с ws:// и wss:// устанавливают в порту 80 и 443 соответственно, точно тот же порт, что http:// и https://

websockets необходимы, так как протокол http был разработан с начала, чтобы не предохранять состояние между просьбами (он stateless). Что это значит? Что, когда ты делаешь просьбу в сервер и непосредственно вслед посылаешь другую, этот не способен понимать, что у двух есть связь. Обычно используются куки-файлы, javascript и код на сервере для того, чтобы этот понял, что информация связана, но в себе протокол http не имеет ничего общего с этим. Этот только диктует, что каждая просьба была самодостаточна, как для того, чтобы server смог отвечать ему, идентифицируя только каждую пару "просьбу / ответ". Это одна из самых сильных точек протокола, так как он позволил создавать многообразные формы коммуникация такой клиент - сервер как REST и очень различные SOAP между собой.

Какие-то типы такой коммуникации как например чат requiren, что шрифт был всегда тем же самым и был возможным знать например, терялась ли связь или изменилось Ваше состояние. Смотря предыдущие условия протокола немного сложно добиваться этого (хотя не невозможный) и отсюда необходимость протокола как websockets, чтобы мочь устанавливать стабильный туннель коммуникации между двумя частями. Имей в виду, что для того, чтобы коммуникация смогла устанавливать обе части, они должны выносить websockets а следовательно большинство frameworks теперь позволяет делать fallback в peticiónes HTTP, если websocket он не вынесен.

Какие-то способы заменять websockets просьбами HTTP inlcuyen

Server Сент Эвентс: Главным образом просьба http, что не заканчивается, и в которой обе части посылают информацию (так как часть ответа только заканчивается, когда закрывается связь).

Лонг Пулинг: Техника, в которой посланы постоянно просьбы / ответы в регулярные интервалы для того, чтобы обе части actualizen состояние связи и прошли сообщения. Если одна из частей прекращает отвечать, она считается потерянной связью.

Comet: Набор техник, которые позволяют поддерживать стабильную связь используя технологию PUSH и другие техники http.

Прочитай также What пашите long polling websockets server sent events sse and comet

Какие-то frameworks, которые помогают websockets:

Заметь: Форма сетевого протокола может быть такой разнообразной, что удалось быть изобретенным IP на почтовых голубях, который является определенным в rfc2549 :P

2
ответ дан 24.11.2019, 14:37
  • 1
    спасибо за твой ответ, но какие-то p и # 225; rrafos кажутся traducci и # 243; n, что не понимает себя очень хорошо. – HCarrasko 06.04.2016, 22:50
  • 2
    @Hector podr и # 237; схвати быть м и # 225; s я определяю, который ты имеешь в виду с traducci и # 243; n? Все art и # 237; снабженные ссылками зады - в espa и # 241; ol, кроме ссылка на post StackOverflow – devconcept 07.04.2016, 15:15
  • 3
    Текст не отвечает полностью мои вопросы и какие-то p и # 225; rrafos у них нет многого sem и # 225; ntica а следовательно не понятно, что то, что ты хочешь сказать или для того, чтобы ты упоминаешь об этом informaci и # 243; n. В любом случае я дал тебе +1 – HCarrasko 07.04.2016, 15:27
  • 4
    @Hector Моя цель состоит в том, чтобы ответ был ясным. Если ты можешь показывать мне, что то, что осталось, не отвечая, и я издаю вопрос и объясняю лучше – devconcept 07.04.2016, 16:05

Теги

Похожие вопросы