Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Servidor Web
Servidor Web
Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor, realizando
conexiones bidireccionales o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en
cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente es renderizado por un navegador web. Para la
transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se usa el protocolo HTTP para estas comunicaciones,
perteneciente a la capa de aplicación delmodelo OSI. El término también se emplea para referirse alordenador.
Índice
Arquitectura
Petición GET
Esquema de una petición GET
Petición Web
1.1 Socket a dirección DNS
1.2 Resolución de DNS a IP
1.3 Recuperación de la regla DNS
1.4 Socket a dirección IP
1.5 Preparación de la petición
1.6 Apertura Caché
1.7 Efectuación de la petición
1.8 Consulta en Caché
1.9 Respuesta booleana de la existencia del recurso solicitado
2.0 Presentación visual del recurso
Petición GET pasiva
Procedimiento del navegador
Petición POST
Estructura de una petición POST
Composición de una petición POST
Estructura de una respuesta POST
Codificación del mensaje del cuerpo de la petición
Procedimiento del navegador
Funcionamiento
Aplicación del lado del Servidor
Procesamiento del lado del servidor
Procesamiento de PHP
Método GET
Método POST
Sesiones
Cookies
Servidor
Procesamiento
Petición GET
Un servidor web opera mediante el protocolo HTTP, de la capa de aplicación del Modelo OSI. Al protocolo HTTP se le asigna
habitualmente el puerto TCP 80. Las peticiones al servidor suelen realizarse mediante HTTP utilizando el método de petición GET,
en el que el recurso se solicita a través de laurl al servidor Web.
GET /index.html HTTP/1.1 HOST: www.host.com
En la barra de URL de un navegador cualquiera, la petición anterior sería análoga a la siguiente dirección eb:
W
www.host.com/index.html
Petición Web
Véase también: Navegador Web
Véase también: Telnet
El navegador, por medio de la interfaz de usuario, permite al usuario realizar una o varias peticiones Web. La interfaz de usuario o
entorno de usuario es el conjunto de elementos del navegador que permiten realizar la petición de forma activa. Una petición Web no
solo puede ser realizada mediante un navegador, sino con cualquier herramienta habilitada para tal fin, como una consola de
comandos Telnet.
Nombre Descripción
Es una porción de contenido Web, texto, imagen y otros elementos, que enlaza con una dirección
Hipervínculo
Web. Al pulsar un hipervínculo, el navegador genera una petición GET automática a la dirección
enlace o link
URL de dicho link.
Formulario Al realizar el envío satisfactorio de los datos de un formulario, el navegador Web genera una petición
Web GET o POST (comúnmente POST) automática a la par que envía los datos al servidor .
Todos los navegadores incluyen una barra de direcciones mediante la cual puede accederse
Barra de
manualmente a cualquier dirección URL, de modo que el navegador generará una petición GET
direcciones
automática a dicha URL cada vez que el usuario lo desee.
Cualquier aplicación Javascript tiene acceso al estado del navegador, cómo puede modificar los
Script activo
datos que describen tal estado, de forma pasiva (sin medio de la intervención del usuario) o de
o pasivo
forma activa (mediante alguna acción del usuario).
SOCKET 192.168.0.1
window.location.href='http://wikipedia.org';
El navegador hará tal petición Web sin que el usuario haya mediado en tal circunstancia o sus efectos. Del mismo modo se producirá
una nueva petición GET si se altera el valor dewindow.location.search o window.location.protocol.
<a href="http://es.wikipedia.org">Entrar</a>
Al pulsar en el enlace, el navegador crea automáticamente la petición GET y las cabeceras de la petición sobre la base de los
metatags (cabeceras definidas), los cookies y cabeceras automáticas del navegador, para luego enviarlas junto a la petición al
Servidor.
Petición POST
Es el segundo tipo de petición HTTP más utilizado. Los datos a enviar al servidor se incluyen en el cuerpo de la misma petición con
las cabeceras HTTP asignadas correspondientemente respecto al tipo de petición. Generalmente se asocia con los formularios web en
los que los datos suelen ser cifrados para enviarlos de manera segura al servidor
.
Si se utilizase el método GET los datos deberían de ser añadidos a la URL, lo que los expondría a ser vistos de forma directa.
Content-Length contentlenght-int 63
mimetypes-accepted-
Accept application/xml,application/xhtml+xml ...
string
language-accepted-
Accept-Language es-ES,es;q=0.8
string
charset-accepted-
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.3
string
accept-encoding-
Accept-Encoding gzip,deflate,sdch
string
Petition type: Especifica el tipo de peticiónHTTP. (Esta cabecera no tiene nombre, se envía tal cual)
Referer: Especifica la url desde la cual se hizo la petición POST
.
Content-Length: Especifica la longitud en bytes de los datos enviados en el cuerpo de la petición.
Origin: Especifica la url principal del sitio.[cita requerida]
User-Agent:Especifica el identificador del navegador Web desde el cual se hizo la petición.
Content-Type: Especifica el formato oMIME de los datos enviados en el cuerpo de la petición.
Accept: Especifica el MIME que se espera en la respuesta.
Accept-Language: Especifica el código del lenguaje esperado en la respuesta.
Accept-Charset: Especifica la codificación que se espera en la respuesta.
Cookie: Especifica un identificador de sesión en la petición derivado de un cookie.
Accept-Encoding: Especifica el tipo de codificación (generalmente compresión) que se espera de la respuesta.
(No
todos los navegadores envían esta cabecera)
<form enctype="multipart/form-data">...</form>
<form enctype="text/plain">...</form>
<form enctype="application/x-www-form-urlencoded">...</form>
O cualquier otro valor MIME. El multipart/form-datase utiliza para enviar grandes cadenas binarias que suponen cualquier
otro tipo de documento que no sea texto plano, como imágenes, vídeos o ejecutables. Para varios valores, separar por comas.
El application/x-www-form-urlencodedcodifica de forma automática los valores de todos los elementos del formulario
del modo variable=valor, separados por &. El atributo name de un input suele ser el nombre de la variable y su value el
valor. Los espacios se reemplazan por + y los caracteres no alfanuméricos por $HH donde HH representa el número hexadecimal del
carácter ASCII.
id=valor+de+la+variable&tama%A4o=4
Funcionamiento
El Servidor web se ejecuta en un ordenador manteniéndose a la espera de peticiones
por parte de un cliente (un navegador web) y responde a estas peticiones
adecuadamente, mediante una página web que se exhibirá en el navegador o
mostrando el respectivo mensaje si se detectó algún error. A modo de ejemplo, al
teclear www.wikipedia.org en nuestro navegador, éste realiza una petición HTTP al
servidor de dicha dirección. El servidor responde al cliente enviando el código
HTML de la página; el cliente, una vez recibido el código, lo interpreta y lo exhibe
en pantalla. Como vemos con este ejemplo, el cliente es el encargado de interpretar
Servidor
el código HTML, es decir, de mostrar las fuentes, los colores y la disposición de los
textos y objetos de la página; el servidor tan sólo se limita a transferir el código de la
página sin llevar a cabo ninguna interpretación de la misma.
Además de la transferencia de código HTML, los Servidores web pueden entregar aplicaciones web. Estas son porciones de código
que se ejecutan cuando se realizan ciertas peticiones o respuestas HTTP
. Hay que distinguir entre:
Aplicaciones en el lado del cliente: el cliente web es el encargado de ejecutarlas en la máquina del usuario. Son las
aplicaciones tipo Java "applets" o Javascript: el servidor proporciona el código de las aplicaciones al cliente y éste,
mediante el navegador, las ejecuta. Es necesario, por tanto, que el cliente disponga de un navegador con capacidad
para ejecutar aplicaciones (también llamadas scripts). Comúnmente, los navegadores permiten ejecutar
aplicaciones escritas en lenguaje javascript y java, aunque pueden añadirse más lenguajes mediante el uso de
plugins.
Aplicaciones en el lado del servidor: el servidor web ejecuta la aplicación; ésta, una vez ejecutada, genera cierto
código HTML; el servidor toma este código recién creado y lo envía al cliente por medio del protocolo HTTP .
Las aplicaciones de servidor muchas veces suelen ser la mejor opción para realizar aplicaciones web. La razón es que, al ejecutarse
ésta en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí ocurre en el caso de querer
ejecutar aplicaciones javascript o java. Así pues, cualquier cliente dotado de un navegador web básico puede utilizar este tipo de
aplicaciones.
El hecho de que HTTP y HTML estén íntimamente ligados no debe dar lugar a confundir ambos términos. HTML es un lenguaje de
marcas y HTTP es un "protocolo".
Lenguaje Fecha de primera versión estable Sistema operativo Última versión estable
PHP 1995 Multiplataforma 5.6.4
ASP 1998 Windows (Algunas versiones) 4.0
Perl 1987 Multiplataforma 5.12.3
Python 1991 Multiplataforma 3.2.0
Ruby 1995 Multiplataforma 1.9.3-p125
El 75% de las aplicaciones del lado del servidor están escritas en PHP, seguido de ASP y las demás opciones usadas de forma
alternativa y muy casual.2
Procesamiento de PHP
En PHP existen variables Globales que representan variables y datos de la
conexiones que establece el Servidor con el cliente.
Método GET
Contiene todas las variables que se envían a través del método HTTP GET, se
referencian a través del Array unidimensional $_GET['variable']. Esta
variable contiene el dato enviado por GET asociado a tal variable, en caso de que Rack con servidores
exista.
Método POST
Contiene todas las variables que se envían a través del método HTTP POST, se referencian a través del Array unidimensional
$_POST['variable']. Esta variable contiene el dato enviado por POST asociado a tal variable.
Sesiones
Contiene datos de sesión adquiridos mediante una petición GET, POST o la lectura de una Cookie[cita requerida]. Se referencia a
través del Array unidimensional $_SESSION['variable'].Esta variable contiene un dato de session.
Cookies
Contiene datos sobre todas las cookies adquiridas en la petición al server, proporcionadas por el navegador en la petición HTTP. Se
referencia a través delArray unidimensional $_COOKIES['variable']
Servidor
Contiene datos proporcionados por el Servidor W
eb. Se referencia a través delArray unidimensional $_SERVER['variable']
Procesamiento
1) Dado el siguiente códigoPHP. <html>
1 if(!empty($_GET['ip']){
2 if($_GET['ip']=="yes"){
3 ip();
4 }}
5 function ip(){
6 if ($_SERVER ['REMOTE_ADDR' ]=="192.168.0.1" ){
7 echo "<b>Su dirección web es 192.168.0.1 </b>" ;
8 } else {
9 echo "<b>Su dirección web no es 192.168.0.1 sino " .$_SERVER ['REMOTE_ADDR' ]."</b>" ;
10 }}
</html> En el caso anterior, podría tomarse por supuesta la decisión del usuario utilizando un enlace cuyo destino sea el archivo que
contenga el Script anterior + la variable y el valor utilizando la siguiente sintaxis: archivo.php?var=val donde var es el
nombre de una variable dada yval es valor asignado a la variable.
http://ruta/archivo.php?ip=yes
2) En caso afirmativo el Script anterior genera el siguiente código html que es enviado posteriormente al navegador
.
Cuando un servidor Web se encuentra instalado en el mismo equipo desde el cual se desea acceder puede utilizarse la dirección de
Loopback, 127.0.0.1 en Ipv4 y ::1 en Ipv6. El puerto TCP 80 se obvia. Los archivos se almacenan en un directorio determinado
por la configuración, generalmente modificable.
Existen numerosas aplicaciones que facilitan la instalación automática de servidores web Apache y aplicaciones adicionales como
Mysql y PHP (entre otros), de forma conjunta, como XAMPP, JAMP o EasyPHP. Estas aplicaciones reciben el nombre de LAMP
cuando se instalan en plataformasLinux, WAMP en sistemas Windows y MAMP en sistemas Apple Macintosh.
Software
Algunos servidores web importantes son:
Nginx
Apache
Internet Information Services(IIS)
Cherokee
Tomcat
Otros servidores, más simples pero más rápidos, son:
lighttpd
thttpd
Véase también
PHP
ASP
Perl
Python/WSGI
CGI
.NET
JSP (Tecnología Java )
CF (Adobe Coldfusion)
Servidor de aplicaciones
Servidor de archivos
Node.js
Referencias
1. «Form enctype» (http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2).
2. «1» (http://w3techs.com/technologies/overview/programming_language/all).
Enlaces externos
World Wide Web Consortium (W3C)
Obtenido de «https://es.wikipedia.org/w/index.php?title=Servidor_web&oldid=109805824
»
Esta página se editó por última vez el 7 ago 2018 a las 15:40.
El texto está disponible bajo laLicencia Creative Commons Atribución Compartir Igual 3.0 ; pueden aplicarse cláusulas
adicionales. Al usar este sitio, usted acepta nuestrostérminos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de laFundación Wikimedia, Inc., una organización sin ánimo de lucro.