Necesito construir un servidor HTTP simple en C. ¿Alguna guía? ¿Enlaces? Muestras
c
httpserver
Nathan H
fuente
fuente
Respuestas:
Le sugiero que eche un vistazo a la pequeña httpd . Si desea escribirlo desde cero, entonces querrá leer detenidamente RFC 2616 . Utilice sockets BSD para acceder a la red a un nivel realmente bajo.
fuente
tiny httpd
también está en github aquí: github.com/larryhe/tinyhttpdTe recomiendo que eches un vistazo a: Una guía práctica para escribir clientes y servidores
Lo que tiene que implementar en pasos incrementales es:
fuente
Un servidor HTTP es conceptualmente simple:
Se vuelve más difícil dependiendo de la cantidad de HTTP que desee admitir: POST es un poco más complicado, los scripts, el manejo de múltiples solicitudes, etc.
Pero la base es muy sencilla.
fuente
Mongoose (anteriormente Simple HTTP Daemon) es bastante bueno. En particular, es integrable y se compila en Windows, Windows CE y UNIX.
fuente
Abra un socket TCP en el puerto 80, comience a escuchar nuevas conexiones, implemente esto . Dependiendo de sus propósitos, puede ignorar casi todo. Como mucho, puede enviar la misma respuesta para cada solicitud, lo que solo implica escribir texto en el socket.
fuente
Mire nweb (el servidor web de Nigel), "un servidor web pequeño y seguro [...] con sólo 200 líneas de código fuente C":
https://drive.google.com/file/d/0B3msld7qnNOhN1NXaFIwSFU2Mjg/view?usp=sharing
http://www.ibm.com/developerworks/systems/library/es-nweb/El artículo incluye pseudocódigo, explicaciones y comentarios.
EDITAR: el enlace de IBM ha muerto. He guardado un PDF de la página web en Google Drive. Aquí está la descarga del código:
https://drive.google.com/file/d/0B3msld7qnNOhSGZGdDJJMmY0VHM/view?usp=sharing
@ ankushagarwal ha realizado algunos cambios y ha subido su versión a GitHub: https://github.com/ankushagarwal/nweb
fuente
He escrito el mío propio que puedes usar. Este funciona tiene sqlite, es seguro para subprocesos y está en C ++ para UNIX.
Debería poder separarlo y usar el código compatible con C.
http://code.google.com/p/mountain-cms/
fuente
La especificación HTTP y Firebug fueron muy útiles para mí cuando tuve que hacerlo por mi tarea.
Buena suerte con el tuyo. :)
fuente
Sugeriría buscar en la fuente algo como lighthttpd .
fuente
http://www.manning.com/hethmon/ - "Guía ilustrada de HTTP por Paul S. Hethmon" de Manning es un muy buen libro para aprender el protocolo HTTP y será muy útil para alguien que lo implemente / amplíe.
fuente
Use funciones de socket específicas de la plataforma para encapsular el protocolo HTTP, tal como lo hicieron los chicos detrás de Apache .
fuente
Hay un duplicado con más respuestas. .
Un candidato que aún no se menciona es spserver .
fuente