# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3 (ipykernel)
#     language: python
#     name: python3
# ---

# # Servidores web.

# Un servidor web es una aplicación que permite publicar contenido basado principalmente en los protocolos *HTTP* y *HTTPS*, el cual será accedido por un cliente (agente) mediante mensajes de petición (*request*) hechas a una *URL* que sea gestionada por dicho servidor. El servidor web deberá contestar a la petición con un mensaje de respuesta (*response*).
#
# Los servidores web pueden ser configurados para atender a uno o más sitios web y gestionar el contenidos que se publicará.

# ## Tipos de contenido.

# ### Contenido estático.
#
# En caso de que sean configurados adecuadamente, un servidor web permite publicar el contenido de una carpeta localizada en el sistema de archivos local, relacionando una ruta de la *URL* con la ruta de la carpeta local. Del mismo modo, es posible asignar permisos de acceso a los recursos a los que se pueden acceder en la carpeta.
#
# Por lo general, el contenido estático consiste en documentos *HTML*, hojas de estilo y *scripts* de *Javascript*.

# ### Contenidos dinámico.
#
# Es posible que un servidor web pueda gestionar los contenidos generados por un "servidor de aplicaciones web", de tal modo que el servidor web esté expuesto a Internet y reenvíe las peticiones de una *URL* pública a un recurso dentro de *localhost* o en un servidor localizado en la red local.  
#
# Los servidores de aplicaciones son sistemas capaces de recibir, interpetar y procesar los datos enviados en los mensajes de petición de un cliente y construir un mensaje de respuesta con los datos resultantes de dicho proceso. Esto implica que el servidor de aplicaciones ejecute ciertos algoritmos, realice conexiones y consultas a bases de datos o se conecte a otros sistemas para poder generar la respuesta a un mensaje de petición. 
#
# No se recomienda que un servidor de aplicaciones web publique su contenido directamente a Internet. 

# ### Funciones adicionales de un servidor web.
#
# * **Cache**: Los servidores web pueden identificar aquellos recursos que sean más requeridos por los usuarios del servicio y crear un caché que contenga los datos y archivos más utilizados, permitiendo generar mensajes de respuestas de forma más rápida.
#
# * **Proxy**: Es posible configurar de manera muy detallada los permisos, accesos y modos de autenticación a lo que es pisble acceder a los recursos de un sistema, por lo que es posible configurar un servidor web para que atienda las peticiones provenientes de una red externa y administrar dichas petciones a otros servidores internos.
#
# * **Balanceo de cargas** Algunos servidores tiene la capacidad de distribuir la totalidad de las peticiones que recibe para que sean procesafdas por uno o más servidor en función de los recursos de cómputo disponible de cada uno de ellos e incluso en función de su localización geográfica.

# ## Los 3 servidores web más populares.

# Según el sitio [*Netcraft*](https://news.netcraft.com/archives/category/web-server-survey/) los servidores web más populares son:
#
# * [*Apache HTTP Server*](https://httpd.apache.org/), el cual es un software de código abierto desarrollado por la [*Apache Software Foudation*](https://www.apache.org/).
# * [*Nginx*](https://www.nginx.com/) el cual es un software de código abierto con servicios y soporte empresarial adicional.
# * [*Microsoft Internet Infornation Services*](https://www.iis.net/) el cual es un servidor web desarrollado por *Microsoft* y que se puede habilitar en varias versiones del sistema operativo *Windows*.

# <p style="text-align: center"><a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Licencia Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a><br />Esta obra está bajo una <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Licencia Creative Commons Atribución 4.0 Internacional</a>.</p>
# <p style="text-align: center">&copy; <NAME>. 2022.</p>

StarcoderdataJupyterScriptsDedupFiltered