¿Saber cómo construir un servidor web es una habilidad impresionante, o simplemente algo que todo desarrollador debería poder hacer?

Si “construir un servidor web” significa buscar en Google WAMP, descargar el paquete y luego presionar Siguiente a través del instalador, entonces no, eso no es impresionante.

Si “construir un servidor web” significa crear una instancia de EC2 y poner en funcionamiento un servidor, entonces es probable que esté un poco por encima del promedio, pero nada alucinante.

Si “construir un servidor web” significa construir la computadora capaz de ejecutar un servidor web decente, entonces impresionante para la gente de software, pero no para la gente de hardware, y cada vez más irrelevante en el mundo de la computación en la nube.

Si “construir un servidor web” significa diseñar un servidor HTTP de calidad desde cero para un caso de uso personalizado, entonces sí, eso podría ser bastante impresionante.

Entonces, la verdadera pregunta es: ¿qué significa construir un servidor web?

Depende de lo que quiera decir con “construir un servidor web”.

Si te refieres a “instalar Apache” y poner algo de HTML en él, eso ni siquiera se está desarrollando, es administración de sistemas.

Si te refieres a “escribir un servidor HTTP”, entonces hacer un servidor HTTP básico es bastante fácil, Google “servidor básico C HTTP” y verás lo que quiero decir.

Sin embargo, escribir un servidor HTTP completo es una gran cantidad de trabajo, la especificación HTTP es enorme y complicada, le tomaría mucho tiempo escribir un servidor HTTP completo desde cero.

Construir un servidor web no es una habilidad, es mucho trabajo. Crear un servidor web simple es extremadamente fácil si conoce la programación de sockets. El desarrollo de un servidor web completo para alojar aplicaciones web del mundo real requerirá el pleno cumplimiento de las especificaciones http que se pueden encontrar en https://www.w3.org/Protocols/rfc … Además, un servidor web que solo aloje documentos HTML estáticos no será de mucha utilidad, por lo que deberá escribir módulos adicionales para admitir tecnologías como PHP, Java, etc. También hay especificaciones para ellos.

Me parece impresionante, dependiendo de lo que quieras decir con “construir un servidor web”, lo que no estoy seguro de entender de todos modos. Mi carrera como ingeniero de software no ha implicado ningún uso de la web (o bases de datos externas para el caso). Así que, naturalmente, encuentro que “construir un servidor web” suena impresionante. Así que espero que no sea algo que todos los desarrolladores deberían poder hacer, ¡porque realmente no tengo nada más que una vaga idea de lo que significa! Tal vez los desarrolladores web / databse encuentren algunas de las cosas que hago misteriosas e impresionantes y se pregunten si les falta algo.

Todo desarrollador debe saber cómo implementar el producto de su trabajo, ya sea para la web o Windows, Linux o lo que sea.

Como otros han señalado, “construir un servidor web” no es realmente una cosa. Un servidor web es una pieza de software. Cualquier usuario de computadora que valga la pena puede instalarlo y mostrar una página de índice, probablemente sin ayuda.