Google es bien conocido por la ridícula cantidad de C ++ que han codificado a lo largo de los años. Corrígeme si me equivoco, pero una gran parte del motor de búsqueda principal de Google está escrito en C ++, ¿no? ¿Cómo se toma un programa escrito en C ++ y se conecta con un sitio web?
Nota: No estoy buscando cómo Google en particular hace esto, sino cómo se podría hacer en general.
web-development
c++
web-applications
Ciencia maniaca
fuente
fuente
Respuestas:
Cualquier software web solo enviará y recibirá mensajes a través de sockets, eso es todo. Puede usar cualquier idioma para hacer esto, no es específico de los idiomas.
Sin embargo, es mejor que no reinvente la rueda para este tipo de trabajo, ya que la mayoría de los lenguajes que se utilizan para hacer aplicaciones web tienen su conjunto de marcos que hace la comunicación básica para usted, para permitirle concentrarse en las especificidades de su proyecto. Ruby tiene ROR, Python tiene Django y otros, Java como ... etc.
C ++ históricamente no tenía un marco similar hasta hace poco:
Ahora, la "cantidad ridícula de C ++" sobre la que se construye Google es necesaria porque necesita tener módulos de muy alto rendimiento para resolver el tipo de problemas que Google resuelve. Buena suerte tratando de hacer lo mismo sin ningún módulo escrito en un lenguaje centrado en el rendimiento. Recomiendo leer el wiki de CPPCMS sobre este tema para comprenderlo mejor. Para hechos históricos, Amazon, Google, Facebook (ver Hip Hop y entrevistas recientes de Alexandrescu) y algunos otros servicios web realmente grandes tienen núcleos en C ++, por obvias razones computacionales que son más importantes que el tiempo perdido en la productividad del programador.
CPPCMS y cpp-netlib son de código abierto, puede estudiarlos si desea saber cómo hacer que una aplicación funcione como un servicio web utilizando C ++. Dicho esto, cualquier aplicación que pueda escuchar puertos y enviar datos al puerto puede hacer esto, se trata de protocolos (TCP / IP, HTTP, etc.) , no de código.
fuente
Como cualquier otro idioma ...
Abra un socket TCP, envíe y reciba mensajes http. Analízalos y haz cosas basadas en el contenido.
Mire Qt para ver un ejemplo en un marco de trabajo de c ++ que admite algunas funciones básicas de http.
También hay marcos web dedicados para C ++. No muchos ni ampliamente utilizados, AFAIK. Probablemente porque si haces web a través de C ++, estás haciendo algo muy especializado de todos modos y quieres un control total sobre todo.
fuente
Desde la perspectiva del cliente, si tiene un programa C / C ++ y desea usarlo para hablar con Internet, usaría libcurl. Es más o menos una biblioteca estándar (y completa) para conectarse a direcciones URL http para enviar y recibir datos. Hay varias otras bibliotecas: Microsoft tiene algunas, hay varias de código abierto.
Ahora eso es para las URL antiguas y simples sobre http (o SMTP, o FTP, o Gopher, o ... ¡libcurl es muy completo!) Si está tratando de consumir servicios web a través de SOAP, puede usar una de muchas otras bibliotecas como gsoap
Para el lado del servidor, necesita un servidor web o marco que exponga su código C ++. Nuevamente, hay muchas maneras de hacer esto: los primeros programas web fueron todos C / C ++, escritos como programas CGI donde el servidor web llamó a su aplicación usando una forma de IPC. Desde entonces, tenemos Wt, Qt, cppCMS, ffead y todos los de Microsoft (ISAPI, ATLServer y ahora Casablanca).
Creo que la razón por la que no-onne realmente usa C ++ para su programación web es porque los otros idiomas vienen preempaquetados con estas bibliotecas. C ++ (como siempre) tienes que buscar una biblioteca para usar, mientras que PHP solo viene listo para la web.
fuente
La arquitectura cliente-servidor permite que esto suceda.
C ++ puede usarse para desarrollar el servidor.
Del lado del cliente, las tecnologías web pueden usarse para comunicarse con el servidor.
fuente