Antes que nada, no hagas esto a menos que sea un ejercicio de aprendizaje. Por favor. Los servidores web (y las bibliotecas HTTP) tienen tanto trabajo puesto que no va a mejorar a partir de cero.
Dicho esto, si debe hacerlo, necesitará:
- Un lenguaje de programación (duh).
- La API de socket del idioma de elección, generalmente, pero no siempre, basada en sockets de Berkeley.
- La API de subprocesos del lenguaje de elección, generalmente basada en subprocesos POSIX.
- El protocolo de transferencia de hipertexto: especificación HTTP / 1.1. O el Protocolo de transferencia de hipertexto versión 2 (HTTP / 2), si eso es lo tuyo.
Realmente, eso es todo. Tendrá que decidir sobre su propio modelo de subprocesos (por solicitud sería obvio, pero no necesario), y descubrir cómo implementar todas las partes importantes (para usted) de HTTP, pero esas son las cosas que necesita saber.
- ¿Deberían los desarrolladores de software vestirse bien y usar corbata para trabajar incluso si la compañía no lo requiere?
- ¿Cuáles son algunas cosas que necesito saber si quiero convertirme en desarrollador de software / informático?
- ¿Por qué contratas a un desarrollador de software independiente? ¿Es solo el precio?
- ¿Cuál es la diferencia notable entre un desarrollador de software independiente y un desarrollador de software que trabaja en una empresa?
- ¿A qué edad se jubilan la mayoría de los desarrolladores de software en el Área de la Bahía?
Suponiendo que es solo un ejercicio, debería ser capaz de construir algo razonablemente funcional en el transcurso de un día, pero no espere desafiar a Apache o proyectos similares sin años de arduo trabajo y una comunidad dedicada que sería mucho mejor empleada para mejorar un proyecto existente.