De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El interior y el frente de un servidor Dell PowerEdge , una computadora diseñada para montarse en un entorno de montaje en rack .
Se pueden utilizar varios servidores web para un sitio web de alto tráfico; aquí, los servidores Dell se instalan juntos y se utilizan para la Fundación Wikimedia .

Un servidor web es un software de computadora y hardware subyacente que acepta solicitudes a través de HTTP , el protocolo de red creado para distribuir páginas web , [1] o su variante segura HTTPS . Un agente de usuario , comúnmente un navegador web o un rastreador web , inicia la comunicación haciendo una solicitud de un recurso específico usando HTTP, y el servidor responde con el contenido de ese recurso o con un mensaje de error . El servidor también puede aceptar y almacenar recursos enviados desde el agente de usuario si está configurado para hacerlo.

Un servidor puede ser una sola computadora, o incluso un sistema integrado como un enrutador con una interfaz de configuración incorporada, pero los sitios web de alto tráfico generalmente ejecutan servidores web en flotas de computadoras diseñadas para manejar una gran cantidad de solicitudes de documentos, archivos multimedia y guiones interactivos. Un recurso enviado desde un servidor web puede ser un archivo preexistente disponible para el servidor, o puede ser generado en el momento de la solicitud por otro programa que se comunica con el programa del servidor. El primero suele ser más rápido y más fácil de almacenar en caché para solicitudes repetidas, mientras que el segundo admite una gama más amplia de aplicaciones. Los sitios web que ofrecen contenido generado generalmente incorporan archivos almacenados siempre que sea posible.

Tecnologías como REST y SOAP , que utilizan HTTP como base para la comunicación general de computadora a computadora, han extendido la aplicación de servidores web mucho más allá de su propósito original de servir páginas legibles por humanos.

Historia [ editar ]

El primer servidor web del mundo, una estación de trabajo NeXT Computer con Ethernet, 1990. La etiqueta de la carcasa dice: "Esta máquina es un servidor. ¡¡NO LA APAGUE !!"
Cobalt Qube 3 de Sun : un dispositivo de servidor informático (2002, descontinuado)

En marzo de 1989, Sir Tim Berners-Lee propuso un nuevo proyecto a su empleador CERN , con el objetivo de facilitar el intercambio de información entre científicos mediante el uso de un sistema de hipertexto . [2] [3] El proyecto dio como resultado que Berners-Lee escribiera dos programas en 1990:

  • Un navegador web llamado WorldWideWeb [4]
  • El primer servidor web del mundo, más tarde conocido como CERN httpd , que se ejecutaba en NeXTSTEP

Entre 1991 y 1994, la simplicidad y eficacia de las primeras tecnologías utilizadas para navegar e intercambiar datos a través de la World Wide Web ayudó a trasladarlos a muchos sistemas operativos diferentes y difundir su uso entre organizaciones científicas y universidades, y posteriormente en la industria.

En 1994 Berners-Lee decidió constituir el Consorcio World Wide Web (W3C) para regular el desarrollo posterior de las muchas tecnologías involucradas ( HTTP , HTML , etc.) a través de un proceso de estandarización.

Funciones comunes básicas [ editar ]

Aunque los programas de servidor web difieren en cómo se implementan, la mayoría de ellos ofrecen las siguientes características básicas comunes.

  • HTTP : soporte para una o más versiones del protocolo HTTP para enviar versiones de respuestas HTTP compatibles con versiones de solicitudes HTTP del cliente, por ejemplo, HTTP / 1.0, HTTP / 1.1 más, si está disponible, HTTP / 2 , HTTP / 3 ;
  • Registro : por lo general, los servidores web también tienen la capacidad de registrar cierta información, sobre las solicitudes de los clientes y las respuestas del servidor, para registrar archivos con fines estadísticos y de seguridad.

Algunas otras características populares (solo una selección muy corta) son:

  • Autenticación , soporte opcional para la solicitud de autorización (solicitud de nombre de usuario y contraseña ) antes de permitir el acceso a algunos o todos los tipos de recursos del sitio web.
  • Soporte de archivos grandes , para poder servir archivos cuyo tamaño sea superior a 2 GB en SO de 32 bits .
  • Aceleración del ancho de banda , para limitar la velocidad de las respuestas del contenido para no saturar la red y poder atender a más clientes.
  • Alojamiento virtual , para poder dar servicio a muchos sitios web ( nombres de dominio ) utilizando solo una dirección IP .

Traducción de ruta [ editar ]

Los servidores web pueden asignar el componente de ruta de un localizador uniforme de recursos (URL) en:

  • Un recurso del sistema de archivos local (para solicitudes estáticas)
  • Un nombre de programa interno o externo (para solicitudes dinámicas)

Para una solicitud estática, la ruta URL especificada por el cliente es relativa al directorio raíz del sitio web de destino. [4]

Considere la siguiente URL tal como la solicitaría un cliente a través de HTTP:

http://www.example.com/path/file.html

El agente de usuario del cliente lo traducirá en una conexión awww.example.comcon la siguiente solicitud HTTP /1.1:

OBTENER /path/file.html HTTP / 1.1Anfitrión: www.example.com

El servidor web en www.example.comagregará la ruta proporcionada a la ruta del directorio raíz del sitio web (Host). En un servidor Apache , esto es comúnmente/ inicio / www / sitio web(en máquinas Unix , generalmente/ var / www / sitio web). El resultado es el recurso del sistema de archivos local:

/home/www/www.example.com/path/file.html

El servidor web luego lee el archivo , si existe, y envía una respuesta al navegador web del cliente. La respuesta describirá el contenido del archivo y contendrá el archivo en sí o aparecerá un mensaje de error diciendo que el archivo no existe o no está disponible.

Servidores web en modo kernel y en modo usuario [ editar ]

Un software de servidor web puede incorporarse al kernel del sistema operativo o en el espacio del usuario (como otras aplicaciones normales).

Los servidores web que se ejecutan en modo kernel pueden tener acceso directo a los recursos del kernel y, por lo tanto, pueden ser, en teoría, más rápidos que los que se ejecutan en modo usuario; De todos modos, existen desventajas al ejecutar un servidor web en modo kernel, por ejemplo: dificultades en el desarrollo ( depuración ) de software, mientras que los errores críticos en tiempo de ejecución pueden provocar problemas graves en el kernel del sistema operativo.

Los servidores web que se ejecutan en modo de usuario deben solicitar permiso al sistema para utilizar más memoria o más recursos de CPU. Estas solicitudes al kernel no solo toman tiempo, sino que no siempre se satisfacen porque el sistema reserva recursos para su propio uso y tiene la responsabilidad de compartir los recursos de hardware con todas las demás aplicaciones en ejecución. La ejecución en modo de usuario también puede significar copias de búfer inútiles, que son otra limitación para los servidores web en modo de usuario.

Hoy en día, casi todo el software de servidor web se ejecuta en modo de usuario (porque muchas de las pequeñas desventajas mencionadas anteriormente se han superado con hardware más rápido, nuevas versiones de SO y nuevo software de servidor web). Consulte también la comparación de software de servidor web para descubrir cuál de ellos se ejecuta en modo kernel o en modo usuario (también denominado espacio kernel o espacio de usuario).

Actuaciones [ editar ]

Para mejorar la experiencia del usuario, los servidores web deben responder rápidamente (lo antes posible) a las solicitudes de los clientes; A menos que la respuesta de contenido se limite (por configuración) para algún tipo de archivos (por ejemplo, archivos grandes, etc.), el contenido de datos devuelto también debe enviarse lo antes posible (alta velocidad de transferencia).

Para el software de servidor web, las principales estadísticas de rendimiento clave (medidas bajo una carga variable de clientes y solicitudes por cliente) son:

  • número máximo de solicitudes por segundo ( RPS , similar a QPS , según la versión y configuración HTTP, el tipo de solicitudes HTTP, etc.);
  • tiempo de respuesta de latencia de la red (generalmente en milisegundos) para cada nueva solicitud de cliente;
  • rendimiento en bytes por segundo (según el tamaño del archivo, el contenido almacenado en caché o no, el ancho de banda de red disponible, el tipo de protocolo HTTP utilizado, etc.).

Por encima de tres, el número de rendimiento puede variar notablemente según el número de conexiones TCP activas, por lo que un cuarto número de estadística es el nivel de simultaneidad admitido por un servidor web bajo una configuración de servidor web específica, tipo de sistema operativo y recursos de hardware disponibles.

Por último, pero no menos importante, el modelo de servidor específico utilizado para implementar un programa de servidor web puede sesgar el rendimiento y el nivel de escalabilidad que se puede alcanzar con una carga pesada o cuando se usa hardware de alta gama (muchas CPU, discos, etc.).

Los rendimientos de un servidor web generalmente se comparan mediante el uso de una o más de las herramientas de prueba de carga automatizadas disponibles .

Límites de carga [ editar ]

Un servidor web (instalación de programa) generalmente tiene límites de carga predefinidos, porque solo puede manejar un número limitado de conexiones de cliente concurrentes (generalmente entre 1 y varias decenas de miles para cada proceso de servidor web activo, consulte también el problema C10k y C10M problema) y solo puede atender un cierto número máximo de solicitudes por segundo dependiendo de:

  • su propia configuración,
  • el tipo de solicitud HTTP promedio,
  • si el contenido solicitado es estático o dinámico,
  • si el contenido está en caché o comprimido ,
  • la velocidad media de la red entre los clientes y el servidor web,
  • el número de conexiones TCP activas ,
  • las limitaciones de hardware y software o la configuración del sistema operativo de las computadoras en las que se ejecuta el servidor web.

Cuando un servidor web está cerca o por encima de sus límites, se sobrecarga y, por lo tanto, puede dejar de responder.

Causas de sobrecarga [ editar ]

En cualquier momento, los servidores web pueden sobrecargarse debido a:

  • Exceso de tráfico web legítimo. Miles o incluso millones de clientes que se conectan al sitio web en un intervalo corto, por ejemplo, efecto Slashdot ;
  • Ataques distribuidos de denegación de servicio . Un ataque de denegación de servicio (ataque DoS) o un ataque distribuido de denegación de servicio (ataque DDoS) es un intento de hacer que una computadora o un recurso de red no esté disponible para sus usuarios previstos;
  • Gusanos informáticos que a veces causan tráfico anormal debido a millones de equipos infectados (no coordinados entre ellos)
  • Los gusanos XSS pueden generar mucho tráfico debido a millones de navegadores o servidores web infectados;
  • Bots de Internet Tráfico no filtrado / limitado en sitios web grandes con muy pocos recursos (ancho de banda, etc.);
  • Internet (red) se ralentiza (debido a la pérdida de paquetes, etc.) de modo que las solicitudes de los clientes se atienden más lentamente y el número de conexiones aumenta tanto que se alcanzan los límites del servidor;
  • Servidores web ( computadoras ) indisponibilidad parcial. Esto puede suceder debido a mantenimiento o actualización necesarios o urgentes, fallas de hardware o software, fallas de back-end (por ejemplo, base de datos ), etc .; en estos casos, los servidores web restantes pueden recibir demasiado tráfico y sobrecargarse.

Síntomas de sobrecarga [ editar ]

Los síntomas de un servidor web sobrecargado son:

  • Las solicitudes se atienden con retrasos (posiblemente largos) (de 1 segundo a algunos cientos de segundos).
  • El servidor web devuelve un código de error HTTP , como 500, 502, [5] [6] 503, [7] 504, [8] 408 o incluso un 404 intermitente .
  • El servidor web rechaza o restablece (interrumpe) las conexiones TCP antes de devolver cualquier contenido.
  • En casos muy raros, el servidor web devuelve solo una parte del contenido solicitado. Este comportamiento puede considerarse un error , incluso si suele surgir como un síntoma de sobrecarga.

Técnicas anti-sobrecarga [ editar ]

Para superar parcialmente los límites de carga por encima del promedio y evitar la sobrecarga, los sitios web más populares utilizan técnicas comunes como:

  • Gestionar el tráfico de la red mediante:
    • Cortafuegos para bloquear el tráfico no deseado procedente de fuentes de IP incorrectas o con patrones incorrectos;
    • Administradores de tráfico HTTP para eliminar, redirigir o reescribir solicitudes que tengan patrones HTTP incorrectos ;
    • Gestión del ancho de banda y modelado del tráfico , con el fin de suavizar los picos en el uso de la red;
  • Implementación de técnicas de caché web .
  • Usar diferentes nombres de dominio o direcciones IP para servir contenido diferente (estático y dinámico) por servidores web separados, por ejemplo:
    • http://images.example.com
    • http://example.com
  • Usar diferentes nombres de dominio o computadoras para separar archivos grandes de archivos pequeños y medianos; la idea es poder almacenar en caché por completo archivos pequeños y medianos y servir de manera eficiente archivos grandes o grandes (más de 10 - 1000 MB) mediante el uso de diferentes configuraciones.
  • Utilizando muchos servidores web (programas) por computadora, cada uno vinculado a su propia tarjeta de red y dirección IP .
  • Usar muchos servidores web (computadoras) que se agrupan detrás de un equilibrador de carga para que actúen o se vean como un gran servidor web.
  • Agregar más recursos de hardware (es decir , RAM , discos ) a cada computadora.
  • Ajuste de los parámetros del sistema operativo para las capacidades y el uso del hardware.
  • Utilizar programas informáticos más eficientes para servidores web, etc.
  • Usar otras soluciones de programación , especialmente si se trata de contenido dinámico.
  • Usar las últimas versiones eficientes de HTTP (por ejemplo, más allá de usar HTTP / 1.1 común también habilitando HTTP / 2 y tal vez, en un futuro cercano, HTTP / 3 también siempre que el software de servidor web disponible tenga soporte confiable para los dos últimos protocolos) para reducir un lot el número de conexiones TCP / IP iniciadas por cada cliente y el tamaño de los datos intercambiados (debido a una representación de encabezados HTTP más compacta, compresión de datos, etc.); de todos modos, incluso si los protocolos HTTP más nuevos generalmente requieren menos recursos del sistema operativo , a veces pueden requerir más recursos de RAM y CPU utilizados por el software del servidor web (debido a los datos cifrados, la compresión de datos sobre la marcha y otros detalles de implementación) .

Cuota de mercado [ editar ]

El LAMP (paquete de software) (aquí también con Squid ), compuesto completamente de software gratuito y de código abierto , es una solución de alto rendimiento y alta disponibilidad para trabajos pesados ​​para un entorno hostil.
Gráfico:
cuota de mercado de todos los sitios de los principales servidores web 2005-2018

Febrero de 2021 [ editar ]

A continuación se muestran las estadísticas más recientes de la participación de mercado de todos los sitios de los principales servidores web en Internet según la encuesta de servidores web de febrero de 2021 de Netcraft .

Todos los demás servidores web son utilizados por menos del 5% de los sitios web.

Febrero de 2020 [ editar ]

A continuación se muestran las últimas estadísticas de la participación de mercado de todos los sitios de los principales servidores web en Internet según la Encuesta de servidores web de febrero de 2020 de Netcraft .

Todos los demás servidores web son utilizados por menos del 3% de los sitios web.

Febrero de 2019 [ editar ]

A continuación se muestran las últimas estadísticas de la participación de mercado de todos los sitios de los principales servidores web en Internet según la encuesta de servidores web de febrero de 2019 de Netcraft .

Todos los demás servidores web son utilizados por menos del 1% de los sitios web.

Julio de 2018 [ editar ]

A continuación se muestran las estadísticas más recientes de la participación de mercado de todos los sitios de los principales servidores web en Internet según la Encuesta de servidores web de febrero de 2018 de Netcraft .

Todos los demás servidores web son utilizados por menos del 1% de los sitios web.

Febrero de 2017 [ editar ]

A continuación se muestran las estadísticas más recientes de la participación de mercado de todos los sitios de los principales servidores web en Internet según la Encuesta de servidores web de febrero de 2017 de Netcraft .

Febrero de 2016 [ editar ]

A continuación se muestran las estadísticas más recientes de la participación de mercado de todos los sitios de los principales servidores web en Internet según la encuesta de servidores web de febrero de 2016 de Netcraft .

Apache, IIS y Nginx son los servidores web más utilizados en la World Wide Web. [9] [10]

Ver también [ editar ]

  • Servidor (informática)
  • Servidor de aplicaciones
  • Comparación de software de servidor web
  • Compresión HTTP
  • Aplicación web de código abierto
  • Objeto variante
  • Alojamiento virtual
  • Servicio de alojamiento web
  • Contenedor web
  • proxy web
  • servicio web
  • Interfaces de puerta de enlace de servidor web estándar utilizadas para contenido dinámico :
    • CGI
    • SCGI
    • FastCGI
  • Algunas otras interfaces de servidor web (específicas del servidor o del idioma) utilizadas para contenidos dinámicos :
    • SSI (los documentos HTML estáticos que se utilizan con poca frecuencia que contienen directivas SSI son interpretados por el software del servidor para incluir pequeños datos dinámicos sobre la marcha cuando se sirven las páginas, por ejemplo, fecha y hora, otros contenidos de archivos estáticos, etc.)
    • SAPI , ISAPI , NSAPI
    • Interfaz de puerta de enlace del servidor web PSGI Perl
    • Interfaz de puerta de enlace del servidor web WSGI Python
    • Interfaz de puerta de enlace del servidor web Rack Rack
    • Interfaz de puerta de enlace del servidor web JSGI JavaScript
    • Java Servlet , JavaServer Pages
    • Páginas Active Server , ASP.NET

Referencias [ editar ]

  1. ^ Nancy J. Yeager; Robert E. McGrath (1996). Tecnología de servidor web . ISBN 1-55860-376-X. Consultado el 22 de enero de 2021 .
  2. ^ Zolfagharifard, Ellie (24 de noviembre de 2018). " ' Padre de la web' Sir Tim Berners-Lee sobre su plan para luchar contra las noticias falsas" . El telégrafo . ISSN 0307-1235 . Consultado el 1 de febrero de 2019 . 
  3. ^ "Historia de las computadoras y la informática, Internet, nacimiento, la World Wide Web de Tim Berners-Lee" . history-computer.com . Consultado el 1 de febrero de 2019 .
  4. ^ a b Macaulay, Tom. "¿Cuáles son los mejores servidores web de código abierto?" . ComputerworldUK . Consultado el 1 de febrero de 2019 .
  5. ^ Fisher, Tim; Lifewire. "¿Obteniendo un error 502 Bad Gateway? Esto es lo que debe hacer" . Lifewire . Consultado el 1 de febrero de 2019 .
  6. ^ "¿Qué es una puerta de enlace 502 incorrecta y cómo se soluciona?" . ES PRO . Consultado el 1 de febrero de 2019 .
  7. ^ Fisher, Tim; Lifewire. "¿Aparece un error de servicio 503 no disponible? Esto es lo que debe hacer" . Lifewire . Consultado el 1 de febrero de 2019 .
  8. ^ Fisher, Tim; Lifewire. "¿Obteniendo un error de tiempo de espera de puerta de enlace 504? Esto es lo que debe hacer" . Lifewire . Consultado el 1 de febrero de 2019 .
  9. ^ Vaughan-Nichols, Steven J. "Apache y el servidor web rival de IIS, NGINX, está creciendo rápidamente" . ZDNet . Consultado el 1 de febrero de 2019 .
  10. ^ Hadi, Nahari (2011). Seguridad del comercio web: diseño y desarrollo . Krutz, Ronald L. Indianápolis: Wiley Pub. ISBN 9781118098899. OCLC  757394142 .

Enlaces externos [ editar ]

  • Mozilla: ¿que es un servidor web?
  • Netcraft: noticias sobre la encuesta de servidores web