Beruflich Dokumente
Kultur Dokumente
Arquitectura
Los servidores web HTTP son aquellos programas que estn diseados
especialmente para transferir hipertextos, pginas web o pginas HTML, a
partir de la implementacin de un protocolo1 HTTP. El protocolo HTTP es el
protocolo que se utiliza en todas las transacciones de datos de la Web.
El protocolo HTTP se rige por el esquema peticin-respuesta entre un cliente
y un servidor, y representa el diseo clsico de arquitectura web. Veamos
un grfico que representa este esquema:
Peticin GET
Un servidor web opera mediante el protocolo HTTP, de la capa de aplicacin
del Modelo OSI. Al protocolo HTTP se le asigna habitualmente el puerto TCP
80. Las peticiones al servidor suelen realizarse mediante HTTP utilizando el
mtodo de peticin GET en el que el recurso se solicita a travs de la url al
servidor web.
GET /index.html HTTP/1.1 HOST: www.host.com
En la barra de URL de un navegador cualquiera la peticin anterior sera
anloga a la siguiente direccin Web:
www.host.com/index.html
Esquema de una peticin GET
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 peticin de
forma activa. Una peticin Web no slo puede ser realizada mediante un
navegador sino con cualquier herramienta habilitada para tal fin, como una
consola de comandos Telnet.
Elementos del entorno de usuario ms comunes en navegadores Web
visuales:
Nombre
Hipervnculo
enlace o link
Formulario web
Barra de
Descripcin
Es una porcin de contenido Web, texto, imagen y otros
elementos, que enlaza con una direccin Web. Al pulsar
un hipervnculo el navegador genera una peticin GET
automtica a la direccin URL de dicho link.
Al realizar el envo satisfactorio de los datos de un
formulario, el navegador Web genera una peticin GET o
POST (comnmente POST) automtica a la par que enva
los datos al servidor.
Todos los navegadores incluyen una barra de direcciones
direcciones
Script activo o
pasivo
1.1 Socket a direccin DNS.- Se produce una socket con un servidor dado
en direccin IP mediante TCP. Por lo general las direcciones que el
navegador posee inicialmente son direcciones DNS (direcciones
alfanumricas) que deber convertir a direcciones numricas.
1.2 Resolucin de DNS a IP.- Si la direccin dada es DNS y no existe una
regla en la base de datos DNS, el Host Resolver Request solicita al
servidor DNS la o las direcciones IPs correspondientes. El navegador crea
una nueva regla y almacena la direccin IP junto a la direccin DNS en su
base de datos de reglas DNS.
1.3 Recuperacin de la regla DNS.- Una vez almacenada la regla se
realiza una peticin a la base de datos DNS para recuperar los valores de la
regla.
1.4 Socket a direccin IP.- Se produce una socket con la direccin IP
mediante TCP. La direccin IP puede haberse recuperado en el paso anterior.
SOCKET 192.168.0.1
1.5 Preparacin de la peticin.- Se crea la peticin GET estableciendo la
url, un flag, la priority de la peticin y el method (implcitamente GET).
1.6 Apertura Cach.- Se abre y/o se crea una entrada en el http cache
1.7 Efectuacin de la peticin.- Se realiza la peticin GET. Se leen las
cabeceras HTTP de la http transaction y ms tarde el cuerpo de la http
transaction.
GET /index.html HTTP/1.1
1.8 Consulta en Cach.- Se consulta en el cach de disco si existe una
entrada en el cach asociada al recurso que se ha solicitado. Los valores son
created (true o false) y key (la url del recurso).
1.9 Retribucin boleana existencialista del recurso solicitado.- Si la
entrada no existe (si el valor de created es false) se escriben los datos en el
cach de disco. Si no, se lee directamente.
Peticin POST
Es el segundo tipo de peticin HTTP ms utilizado. Los datos a enviar al
servidor se incluyen en el cuerpo de la misma peticin con las cabeceras
HTTP asignadas correspondientemente respecto al tipo de peticin.
Generalmente se asocia con los formularios web en el que los datos suelen
ser cifrados para enviarlos de manera segura al servidor.
Por motivos de convencin se incluye en la peticin la cabecera
application/x-www-form-urlencoded que indica el formato o codificacin
de los datos a enviar; esta es variable->valor en el formato: variable=valor
separada cada par variable->valor por &. Esta cabecera, en los formularios
HTML se enva automticamente, pero en otras tecnologas web tal como
AJAX, si se desea hacer correctamente una peticin POST debe ser
especificado
o instanciado el objeto:
setRequestHeader("Contenttype:application/x-www-form-urlencode"); ajax.send(data);
Si se utilizase el mtodo GET los datos deberan de ser aadidos a la URL, lo
que los expondra a ser vistos de forma directa.
Estructura de una peticin POST
Estructura tpica de una peticin
POST
POST url HTTP/1.1
Petition type
http-url-referer
Referer
contentlenght-int
ContentLength
http-url-origin
Origin
useragent-string
User-Agent
Muestra
POST comment.php HTTP/1.1
index.php
63
https://sites.google.com
Mozilla/5.0 (Windows; U; Windows NT 6.1; enUS) ...
application/x-www-form-urlencoded
Content-Type
Accept
content-type-string
mimetypes-acceptedstring
application/xml,application/xhtml+xml ...
AcceptLanguage
AcceptCharset
Cookie
AcceptEncoding
Content
language-acceptedstring
es-ES,es;q=0.8
charset-acceptedstring
ISO-8859-1,utf-8;q=0.7,*;q=0.3
phpsessid-string
PHPSESSID=gm0ugf96iojuldio8i51u92716
accept-encoding-string
gzip,deflate,sdch
Content-string
&data=4&lang=es+es
Muestra
HTTP/1.1 200 OK
Tue, 07 Jun 2011 05:52:31 GMT
Apache/2.2.17 (Win32) mod_ssl/2.2.17...
Thu, 19 Nov 1981 08:52:00 GMT
no-store, no-cache, must-revalidate...
no-cache
297
text/html
timeout=5, max=98
Keep-Alive
PHP/5.3.5
la peticin y
recopilan en
navegador y
datos si es
Funcionamiento
El Servidor web se ejecuta en una computadora mantenindose a la espera
de peticiones por parte de un cliente (un navegador web) y que responde a
estas peticiones adecuadamente, mediante una pgina web que se exhibir
en el navegador o mostrando el respectivo mensaje si se detect algn
error. A modo de ejemplo, al teclear www.google.com en nuestro navegador,
ste realiza una peticin HTTP al servidor de dicha direccin. El servidor
responde al cliente enviando el cdigo HTML de la pgina; el cliente, una
vez recibido el cdigo, lo interpreta y lo exhibe en pantalla. Como vemos
con este ejemplo, el cliente es el encargado de interpretar el cdigo HTML,
es decir, de mostrar las fuentes, los colores y la disposicin de los textos y
objetos de la pgina; el servidor tan slo se limita a transferir el cdigo de la
pgina sin llevar a cabo ninguna interpretacin de la misma.
Adems de la transferencia de cdigo HTML, los Servidores web pueden
entregar aplicaciones web. stas son porciones de cdigo que se ejecutan
cuando se realizan ciertas peticiones o respuestas HTTP. Hay que distinguir
entre:
Fecha de primera
versin estable
1995
1998
Perl
Python
Ruby
1987
1991
1995
Sistema
operativo
Multiplataforma
Windows
(Algunas
versiones)
Multiplataforma
Multiplataforma
Multiplataforma
ltima versin
estable
5.3.5
4.0
5.12.3
3.2.0
1.9.3-p125
variable contiene el dato enviado por GET asociado a tal variable, en caso
de que exista.
Mtodo POST
Contiene todas las variables que se envan a travs del mtodo HTTP POST,
se referencian a travs del Array unidimensional $_POST['variable']. Esta
variable contiene el dato enviado por POST asociado a tal variable.
Sesiones
Contiene datos de sesin adquiridos mediante una peticin GET, POST o la
lectura de una Cookie[cita requerida]. Se referencia a travs del Array
unidimensional $_SESSION['variable'].Esta variable contiene un dato de
session.
Cookies
Contiene datos sobre todas las cookies adquiridas en la peticin al server,
proporcionadas por el navegador en la peticin HTTP. Se referencia a travs
del Array unidimensional $_COOKIES['variable']
Servidor
Contiene datos proporcionados por el Servidor Web. Se referencia a travs
del Array unidimensional $_SERVER['variable']
Procesamiento
1) Dado el siguiente cdigo PHP.
if(!empty($_GET['ip']){
if($_GET['ip']=="yes"){
ip();
}}
function ip(){
if ($_SERVER['REMOTE_ADDR']=="192.168.0.1"){
echo "<b>Su direccin web es 192.168.0.1 </b>";
} else {
echo "<b>Su direccin web no es 192.168.0.1 sino ".
$_SERVER['REMOTE_ADDR']."</b>";
}}
Software
Algunos servidores web importantes son:
Apache
Internet Information Services (IIS)
Cherokee
Tomcat
Otros servidores, ms simples pero ms rpidos, son:
lighttpd
thttpd
Servidor Compartido
Servidor Virtual Privado (VPS)
Servidor Dedicado
Servidor Compartido
Es una computadora dentro de la cual se aloja ms de un sitio web.
Si tiene 6000 megas de ram y 200 webs alojadas, cada una tendr
asegurada 30Mb de ram.
Servidor Dedicado
Se trata de una computadora (servidor) especialmente dedicada a un solo
sitio. Todo el disco duro, la RAM y el procesador son solo para la web que
alojes en l.