O Google é conhecido pela quantidade ridícula de C ++ que eles codificaram ao longo dos anos. Corrija-me se estiver errado, mas grande parte do mecanismo de busca principal do Google está escrita em C ++, não é? Como se pega um programa escrito em C ++ e o interage com um site?
Nota: não estou procurando como o Google em particular faz isso, apenas como isso pode ser feito em geral.
web-development
c++
web-applications
Ciência Maníaca
fonte
fonte
Respostas:
Qualquer software da web envia e recebe apenas mensagens por soquetes, só isso. Você pode usar qualquer idioma para fazer isso, não é específico para idiomas.
No entanto, é melhor não reinventar a roda para esse tipo de trabalho, para que a maioria das linguagens usadas para aplicativos da Web tenha seu conjunto de estruturas que faz a comunicação básica para você, para permitir que você se concentre nas especificidades do seu projeto. Ruby tem ROR, Python tem Django e outros, Java como ... etc.
C ++ historicamente não tinha nenhuma estrutura semelhante até recentemente:
Agora, a "quantidade ridícula de C ++" que o Google constrói é necessária porque você precisa de módulos de desempenho muito alto para resolver o tipo de problemas que o Google resolve. Boa sorte tentando fazer o mesmo sem nenhum módulo escrito em uma linguagem focada no desempenho. Eu recomendo a leitura do wiki do CPPCMS sobre este assunto para entender melhor. Para fatos históricos, Amazon, Google, Facebook (veja Hip Hop e recentes entrevistas com Alexandrescu) e alguns outros serviços da Web realmente grandes têm núcleos em C ++, por razões computacionais óbvias que são mais importantes que o tempo perdido na produtividade do programador.
Sendo o CPPCMS e o cpp-netlib de código aberto, você pode estudá-los se quiser saber como fazer um aplicativo funcionar como um serviço da Web usando C ++. Dito isso, qualquer aplicativo que possa ouvir portas e enviar dados para porta pode fazer isso potencialmente, é tudo sobre protocolos (TCP / IP, HTTP etc.) , não sobre código.
fonte
Como qualquer outro idioma ....
Abra um soquete TCP, envie e receba mensagens http. Analise-os e faça coisas com base no conteúdo.
Veja no Qt um exemplo em uma estrutura c ++ que suporta algumas funcionalidades http básicas.
Também existem estruturas da web dedicadas para C ++. Não são muitos nem amplamente utilizados, AFAIK. Provavelmente porque se você faz web via C ++, está fazendo algo muito especializado de qualquer maneira e deseja controle total sobre tudo.
fonte
Do ponto de vista do cliente, se você tem um programa C / C ++ e deseja usá-lo para conversar com a Internet, usaria libcurl. É praticamente uma biblioteca padrão (e abrangente) para conectar-se a URLs http para enviar e receber dados. Existem várias outras bibliotecas - a Microsoft possui algumas, existem várias de código aberto.
Agora, isso é para URLs antigas simples sobre http (ou SMTP, FTP ou Gopher, ou ... libcurl é muito abrangente!) Se você estiver tentando consumir serviços da Web sobre SOAP, poderá usar uma de muitas outras bibliotecas, como gsoap.
Para o lado do servidor, você precisa de um servidor da web ou estrutura que exponha seu código C ++. Novamente, existem várias maneiras de fazer isso - os programas Web mais antigos eram todos em C / C ++, escritos como programas CGI, nos quais o servidor Web chamava seu aplicativo usando uma forma de IPC. Desde então, temos Wt, Qt, cppCMS, ffead e todos os da Microsoft (ISAPI, ATLServer e agora Casablanca).
Eu acho que a razão pela qual a on-onne realmente usa C ++ para a programação da Web é porque as outras linguagens vêm pré-empacotadas com essas bibliotecas. Em C ++ (como sempre), você precisa encontrar uma biblioteca para usar, enquanto o PHP vem pronto para usar a web.
fonte
A arquitetura cliente-servidor permite que isso aconteça.
C ++ pode ser usado para desenvolver o servidor.
No lado do cliente, as tecnologias da web podem ser usadas para se comunicar com o servidor.
fonte