Qual é a diferença entre a programação de soquete e a programação Http? Alguém pode ajudar por favor?
fonte
Qual é a diferença entre a programação de soquete e a programação Http? Alguém pode ajudar por favor?
HTTP é um protocolo de aplicativo. Basicamente, significa que o próprio HTTP não pode ser usado para transportar informações de / para um ponto de extremidade remoto. Em vez disso, ele depende de um protocolo subjacente que, no caso do HTTP, é o TCP.
Você pode ler mais sobre camadas OSI se estiver interessado.
Os soquetes, por outro lado, são uma API fornecida pela maioria dos sistemas operacionais para comunicar-se com a rede. A API de soquete suporta diferentes protocolos da camada de transporte e abaixo.
Isso significa que se você quiser usar TCP, use sockets. Mas você também pode usar soquetes para se comunicar usando HTTP, mas então você tem que decodificar / codificar mensagens de acordo com a especificação HTTP ( RFC2616 ). Visto que isso pode ser uma tarefa enorme para a maioria dos desenvolvedores, também temos clientes prontos em nossos frameworks de desenvolvedor (como .NET), por exemplo, o WebClient
ou as HttpWebRequest
classes.
Com o HTTP, você usa o protocolo HTTP de alto nível (que funciona em cima de um soquete). É sem sessão, o que significa que você envia uma solicitação de texto como
GET google.com
e recebe texto ou dados binários em troca, depois que a conexão for fechada (em HTTP 1.1 conexões persistentes estão disponíveis)Exemplo do MSDN:
Com os soquetes você vai para o nível mais baixo e controla a conexão e envia / recebe bytes brutos.
Exemplo:
fonte
Connection
cabeçalho está definido;)fonte
A programação HTTP ou solicitação HTTP é usada para acoplamento frouxo e comunicação de tecnologia de linguagem neutra de plataforma, onde a programação de soquete é usada onde o sistema tem protocolo de especificação de linguagem
fonte
para que dois terminais possam se comunicar, eles devem seguir um conjunto de regras. no computador, esse conjunto de regras é denominado protocolo.
por exemplo, para um endpoint como um navegador e para outro como um servidor web, ambos devem seguir um conjunto de regras ou protocolo denominado http para poder se comunicar e trocar informações. então, na rede mundial de computadores e neste tipo de comunicação, apenas aqueles que falam com base neste protocolo http podem se comunicar com sucesso.
socket é apenas um endpoint. ele poderia seguir o protocolo http para entrar em uma comunicação em www como um cliente solicitando uma página ou poderia atuar como um servidor ouvindo conexões. ou talvez pudesse seguir outro conjunto de regras ou protocolos como ssh, ftp e se comunicar de outras maneiras.
agora na programação de soquete você pode fazer um soquete, vinculá-lo a um endereço ip e um número de porta para atuar como um número de porta e dizer a ele para seguir http, ssh, ftp ou o que você quiser com base nas comunicações que deseja usar soquete para.
fonte