¿Qué tan difícil es hacer un servidor web completo con todas las características necesarias por ti mismo?

A partir de qué? Primero, deberá diseñar y fabricar hardware que sea completo o especializado para servir páginas web. Tendría que hacer un compilador de lenguaje de máquina o algo más complejo para interpretar los idiomas que desea codificar en código ejecutable. Necesitaría una implementación de pila tcp / ip para hacer uso de una conexión ethernet, y un cliente telnet básico para “hablar” correctamente al puerto 80. Luego necesitaría implementar respuestas de solicitud http sobre esa conexión. Entonces, tal vez podría concentrarse en lo que realmente quería hacer.

Mucho más probable sería elegir reutilizar el trabajo de otros para la mayoría que no te importa reinventar. Probablemente eso significaría comprar hardware, sistema operativo, software de cliente / servidor y una moderna plataforma de desarrollo orientada a la web que reduce las partes en las que no está interesado en algo como “myWebServer = nuevo httpServer (varias opciones de inicio)”; Dichas opciones han existido el tiempo suficiente para que realmente necesite hacer algo inusual para que no sea una opción que ahorre tiempo.

Depende de lo que esté dispuesto a confiar y de lo que quiere decir con “todas las características necesarias”. Me refiero a esa última parte proyecto por proyecto, no una sugerencia de que la pregunta necesita más detalles.

Mientras escribo esto, estoy descargando un archivo de otra computadora en mi red que ejecuta python -m SimpleHTTPServer . ¡Hecho! Todas las características que necesito, para los próximos … cinco minutos y cambio. Ruby on Rails genera un servidor web para usted, al igual que la mayoría de los marcos web.

Si quiere decir algo de nivel inferior, deberá familiarizarse con la API de socket local (tradicionalmente basada en sockets de Berkeley), decidir un modelo de subprocesos si desea ser multiproceso (una de las cosas que pueden o pueden no sea una “característica necesaria”) y aprenda esa técnica, y familiarícese con el Protocolo de transferencia de hipertexto – especificación HTTP / 1.1 (o 2.0, si ese es su objetivo).

HTTP es bastante sencillo, considerando todo. Mientras el alcance sea limitado, no me sentiría demasiado culpable por asignarlo como tarea para un curso de programación en red.

Pero obviamente no lo pones en producción. Es un proyecto divertido, pero se caerán en el mundo real y los grandes nombres de la industria son geniales y gratuitos.

Casi todos los lenguajes de programación del lado del servidor tienen al menos un micro framework.
Todos los frameworks listos son mucho más simples de usar y ayudan mucho a comprender los sistemas de servidor cliente.

ve y busca uno del idioma que elijas

java: http://sparkjava.com/ http://jodd.org/
python: http://flask.pocoo.org/ http://bottlepy.org/docs/dev/ind
rubí: http://cuba.is/ http://www.sinatrarb.com/
php: http://www.slimframework.com/ http://lumen.laravel.com/
nodejs: http://microjs.com/ http://senecajs.org/
C #: ya tiene hermosas plantillas junto con generadores de código

espero que esto ayude

En rails: escriba ‘rails new projectname’ y tendrá un servidor listo.

Pero eso no es lo que quieres. Quieres características. Y estas características definen el tiempo que necesita. Nada más. Así que depende de ti.

More Interesting

¿Estás haciendo programación de pares en tu trabajo?

¿Qué hace un desarrollador de software en Amazon? ¿En qué trabajan y qué herramientas usan?

¿Cuáles son las mayores dificultades cuando se trabaja con desarrolladores de software?

Para un primer trabajo, ¿es preferible ser ingeniero / desarrollador de software en una gran multinacional o una startup? ¿Por qué por qué no?

¿Cuáles son las mejores prácticas para que una persona no técnica se comunique con los desarrolladores?

¿Debería un equipo de desarrollo de software que realiza un microservicio permitir solicitudes de extracción externas o no?

¿Qué medidas debe poner en práctica un desarrollador de software próximo / maestro para resistir la mayor competencia en el mercado laboral?

¿Qué buscan los desarrolladores en compañeros de trabajo no técnicos?

¿Eres capaz de obtener un trabajo de desarrollador de software a tiempo completo después de terminar un bootcamp programador?

¿Cuáles son los mejores libros de desarrollo de software que resisten el paso del tiempo?

¿Java está saturado?

¿Cuáles son los diversos dominios en los que trabajan los desarrolladores de software?

¿Cuál es su lista de tareas sugeridas para comenzar una comunidad para nerds tecnológicos?

¿Dónde debería centrarme más: desarrollo web, diseño gráfico, aplicaciones de Android, aplicaciones de iOS, juegos o análisis de datos?

Me han ofrecido $ 23 / h como desarrollador de software para posponer mi graduación y continuar trabajando a tiempo completo. Estoy a un año de graduarme y tengo dos años de experiencia en el campo. ¿Qué tengo que hacer?