Necesito construir un servidor http liviano para mi aplicación básicamente es un servidor que escucha un puerto y emite una información de estado en las solicitudes sin carga alta, https, se requiere otra funcionalidad ¿Hay alguna C++ biblioteca que me ayudaría a construir un servidor httpligero servidor http C++
Respuesta
Todo está allí (estándar de C++) ... sockets, leer/escribir si TCP, y otras funciones para UDP (si lo va a usar), etc ... No hay nada más que necesite excepto las funciones de red, el resto depende de la gestión de archivos (leer archivos html y demás) y del enrutamiento si quiere ir más allá.
realmente te aconsejo leer esta guía:
Es gratis y se explica todo lo necesario para poner en práctica ese pequeño servidor web.
Supongo que es una tarea, no recibí esto en mis clases de networking, pero algunos amigos lo hicieron, y es bastante fácil y divertido de hacer si tienes un poco de conocimiento de C++.
Pero si realmente lo quieres es compatible con RFC, en lugar de solo trabajar con navegadores comunes, tampoco es muy trivial. – smilingthax
@smilingthax: lo sé, es por eso que asumí que era una tarea universitaria. Realmente no se puede codificar un servidor web compatible con RFC en 1 o 2 semanas, que es la fecha límite normal, mientras se tienen que estudiar otras cosas. Si se trata de una tarea, probablemente desee un servidor web simple con rosca (o no, el mío es un hilo), que puede manejar básicamente GET, POST y algunas otras cosas HTML simples, y administrar algunos archivos html. Si no es una tarea ...¿Por qué alguien querría codificar su propio servidor web con tantas implementaciones livianas y seguras? – hfingler
"Todo está allí (estándar de C++) ... sockets, leer/escribir si TCP, y otras funciones para UDP (si lo va a usar), etc.". ¿Hay algo que ver con HTTP, como un analizador de encabezado? –
Echa un vistazo a http://code.google.com/p/mongoose/. Creo que está separado en una biblioteca que hace exactamente lo que quieres. Está escrito en C, sin embargo.
+1 Mi equipo utiliza mangostas para servicios livianos ... son ~ 5200 líneas de C, tres archivos de origen, una página de hombre y un archivo Makefile de cien líneas. servidores main.c como una buena ilustración de cómo llamar a mg_start() para iniciar el servidor en un hilo de fondo .... –
Me gustaría aprovechar la oportunidad para preguntar si la mangosta tiene limitaciones conocidas para los servicios no livianos. Si diseño con cuidado el sitio web, ¿se puede usar como reemplazo de PHP en términos de rendimiento, o me retrasará si no modifico su código fuente? –
me has perdido: PHP es un lenguaje utilizado para la generación dinámica de contenido, y fácilmente accesible por un daemon HTTP (servidor web, por ejemplo, mangosta), pero no es un daemon HTTP en sí. No veo cómo la mangosta puede reemplazar a PHP, ya que es una bestia completamente separada. Aún así, quizás se pregunte si Apache + PHP puede superar a Mangosta + PHP ... No sé, nunca intenté usar PHP con mangosta. Servimos cosas realmente simples: HTML estático y hojas de estilo. –
Hay libmicrohttpd. Sin embargo, tuve que escribir bastante código de pegamento para adaptarlo a mi propósito; pero nunca me arrepentí.
¿Puedo preguntar por qué necesitaba pegamento? Se ve perfecto –
@ n2liquid: aunque tiene algunas opciones para usarlo con otro ciclo de eventos, esto no fue suficiente para mi caso (una aplicación de GUI, es decir, Glib/Gtk (mm)). Además, la API tiene un nivel más bajo que el servicio, p. un directorio local completo. – smilingthax
Ah, ya veo. Personalmente odio las bibliotecas robando el ciclo principal ... –
Si desea interactividad, considere usar wt.
cómo sobre estos boost.asio examples, usted tiene 5 opciones a partir de la versión 1.44. o puede intentar cpp-netlib, que está basado en boost.asio y que debe incluirse en boost.
Mongoose tiene ahora una envoltura C++ - SEE:
Aquí es otro servidor de peso ligero que puede ser usado a lo largo de C++.
http://sourceforge.net/projects/miniweb/ ver, qué características coinciden con su requisito.
- 1. Servidor HTTP Proxy en C#
- 2. ¿Servidor ligero de aplicaciones web para PHP?
- 3. peso ligero biblioteca de HTTP Server en .NET
- 4. Servidor HTTP simple lib
- 5. Analizador ligero XML C++ SAX
- 6. Depurador C# independiente y ligero C#
- 7. ¿Iniciar programáticamente un servidor HTTP en C#?
- 8. Servidor proxy HTTP
- 9. Programación del servidor HTTP
- 10. Servidor HTTP simple
- 11. Qt Servidor HTTP?
- 12. servidor http en php
- 13. Manejar HTTP disparado por Flex en el servidor C#
- 14. Entorno de desarrollo WebLogic ligero
- 15. deteniendo un servidor cerebrito sobre http
- 16. Depurador .NET ligero.
- 17. Hilo pesado y ligero
- 18. Analizador de expresiones regulares ligero
- 19. Biblioteca o servidor de streaming HTTP/iPhone HTTP
- 20. Método HTTP personalizado con el servidor HTTP de Nodejs
- 21. Servidor web incrustado de C#?
- 22. ligero control del navegador para la aplicación C#
- 23. ¿Python es más rápido y ligero que C++?
- 24. http archivo de transferencia del servidor al servidor
- 25. localhost http 500 error del servidor interno
- 26. Autenticación HTTP básica para un servidor Jetty
- 27. Envío entero al servidor HTTP utilizando NameValuePair
- 28. ¿Hay un servidor HTTP listo para depuración?
- 29. Config Apache Servidor HTTP para Eclipse
- 30. Servidor Python HTTP que admite codificación fragmentada?
@ user490710 han mirado boost ... Si Windows, ¿por qué no WinHTTP? – yadab
También hay pion en la biblioteca de red http://prog-xp.blogspot.fr/2011/01/creating-simple-web-server-with-pion.html – Offirmo
Poco (http://pocoproject.org) puede ser una opción. Tiene un servidor HTTP ya hecho. – Eonil