Sie sind auf Seite 1von 6

Servidor web

Un servidor web o servidor HTTP es un programa informtico que procesa una aplicacin del lado del servidor, realizando conexiones bidireccionales y/o unidireccionales y sncronas o asncronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o
Aplicacin del lado del cliente. El cdigo recibido por el
cliente suele ser compilado y ejecutado por un navegador
web. Para la transmisin de todos estos datos suele utilizarse algn protocolo. Generalmente se usa el protocolo
HTTP para estas comunicaciones, perteneciente a la capa de aplicacin del modelo OSI. El trmino tambin se
emplea para referirse al ordenador que ejecuta el programa.

Tampa,
Florida, USA

realizar la peticin de forma activa. Una peticin Web


no slo puede ser realizada mediante un navegador, sino
con cualquier herramienta habilitada para tal n, como
una consola de comandos Telnet.
Elementos del entorno de usuario ms comunes en navegadores Web visuales:

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.

Amsterdam,
Netherlands

Database server
Database mirror
Image server
Toolserver
Search server
Apache Webserver
Load Balancer
Squid Cache

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.

Seoul (Yahoo),
South Korea

Internet

Arquitectura de distribucin de los servidores de la Fundacin


Wikimedia

1
1.1

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.

Arquitectura

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.

Peticin GET

Un servidor web opera mediante el protocolo HTTP, de la


SOCKET 192.168.0.1
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 1.5 Preparacin de la peticin Se crea la peticin
GET estableciendo la url, un ag, la priority de la petisolicita a travs de la url al servidor Web.
cin y el method (implcitamente GET).
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:

1.6 Apertura Cach


en el http cache.

www.host.com/index.html
1.1.1

Esquema de una peticin GET

Se abre y/o se crea una entrada

1.7 Efectuacin de la peticin Se realiza la peticin


GET. Se leen las cabeceras HTTP de la http transaction
Peticin Web El navegador, por medio de la interfaz
y ms tarde el cuerpo de la http transaction.
de usuario, permite al usuario realizar una o varias peticiones Web. La interfaz de usuario o entorno de usuario
GET /index.html HTTP/1.1
es el conjunto de elementos del navegador que permiten
1

ARQUITECTURA

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).

ca el formato o codicacin 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 especicado o
1.9 Retribucin boleana existencialista del recurso instanciado el objeto: setRequestHeader("Content-type:
solicitado Si la entrada no existe (si el valor de created application/x-www-form-urlencode"); ajax.send(data);
es false) se escriben los datos en el cach de disco. Si no,
Si se utilizase el mtodo GET los datos deberan de ser
se lee directamente.
aadidos a la URL, lo que los expondra a ser vistos de
forma directa.
2.0 Presentacin visual del recurso Se concluye la
operacin y se muestra en pantalla (si es preciso) la in1.2.1 Estructura de una peticin POST
formacin.
1.2.2 Composicin de una peticin POST
1.1.2

Peticin GET pasiva

Las cabeceras ms comunes que se envan en una peticin


Javascript permite realizar modicaciones en el estado POST:
del navegador. El estado del navegador viene denido por
el array de objetos location del objeto global Window.
Petition type: Especica el tipo de peticin HTTP.
Se referencia a tal objeto con window.location. En con(Esta cabecera no tiene nombre, se enva tal cual)
creto window.location.href contiene la direccin actual
Referer: Especica la url desde la cual se hizo la
del navegador Web.
peticin POST.
Si una parte del script ejecuta tal sentencia:
Content-Length: Especica la longitud en bytes de
window.location.href='http://wikipedia.org';
los datos enviados en el cuerpo de la peticin.
El navegador har tal peticin Web sin que el usuario
Origin: Especica la url principal del
haya mediado en tal circunstancia o sus efectos. Del
sitio.[cita requerida]
mismo modo se producir una nueva peticin GET si
se altera el valor de window.location.search o win User-Agent:Especica el identicador del navegadow.location.protocol.
dor Web desde el cual se hizo la peticin.
1.1.3

Procedimiento del navegador

La tarea del navegador Web es crear la peticin a partir de


los datos recogidos en el entorno de usuario de elementos
del mismo, como enlaces, el valor del texto de la barra de
bsqueda, los metatags.
Al pulsar en el enlace, el navegador crea automticamente
la peticin GET y las cabeceras de la peticin en base a los
metatags (cabeceras denidas), los cookies y cabeceras
automticas del navegador, para luego enviarlas junto a
la peticin al Servidor.

1.2

Peticin POST

Content-Type: Especica el formato o MIME de


los datos enviados en el cuerpo de la peticin.
Accept: Especica el MIME que se espera en la respuesta.
Accept-Language: Especica el cdigo del lenguaje esperado en la respuesta.
Accept-Charset: Especica la codicacin que se
espera en la respuesta.
Cookie: Especica un identicador de sesin en la
peticin derivado de un cookie.
Accept-Encoding: Especica el tipo de codicacin (generalmente compresin) que se espera de la
respuesta. (No todos los navegadores envan esta cabecera)

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 co1.3 Estructura de una respuesta POST
rrespondientemente respecto al tipo de peticin. Generalmente se asocia con los formularios web en los que los
1.3.1 Codicacin del mensaje del cuerpo de la pedatos suelen ser cifrados para enviarlos de manera segura
ticin
al servidor.

Por motivos de convencin se incluye en la peticin la Los datos que se envan en el cuerpo de la peticin POST
cabecera application/x-www-form-urlencoded, que indi- deben tener algn formato que permita manipularlos en

3
un futuro procesamiento. Por ello la peticin debe tener
asignada la cabecera Content-Type cuyo valor ser la codicacin de los datos. De este modo el sistema podr
diferenciar entre variables aisladas, datos binarios, texto
plano, o cualquier otro tipo de formato. El formato de
una cadena de datos se denomina MIME y es el valor que
deber ser incluido en esta cabecera.[1]
En HTML la cabecera Content-Type se especica automticamente y su valor es application/x-www-formurlencoded, no obstante pueden especicarse por estndar otros dos valores: multipart/form-data y text/plain utilizando el atributo enctype del elemento form de la siguiente manera
O cualquier otro valor MIME. El multipart/form-data se
utiliza para enviar grandes cadenas binarias que suponen
cualquier otro tipo de documento que no sea texto plano,
como imgenes, vdeos o ejecutables. Para varios valores,
separar por comas.
El application/x-www-form-urlencoded codica de forma automtica 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 alfanumricos por $HH donde HH
representa el nmero hexadecimal del carcter ASCII.
que representado de otra forma es:
1.3.2

Procedimiento del navegador

El navegador recopila la informacin del formulario para


crear la peticin y enviarla. Las cabeceras las enva junto
a la peticin POST, y se recopilan en base a los metatags
denidos en el cdigo, los automticos del navegador y
los Cookies. Es el navegador, tambin, el que codica los
datos si es necesario. [cita requerida]

Funcionamiento

(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.wikipedia.org 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:
Aplicaciones en el lado del cliente: el cliente web
es el encargado de ejecutarlas en la mquina del
usuario. Son las aplicaciones tipo Java applets o
Javascript: el servidor proporciona el cdigo 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 (tambin llamadas scripts). Comnmente, los navegadores permiten ejecutar aplicaciones escritas en lenguaje javascript y java, aunque pueden aadirse ms lenguajes mediante el uso
de plugins.
Aplicaciones en el lado del servidor: el servidor web
ejecuta la aplicacin; sta, una vez ejecutada, genera
cierto cdigo HTML; el servidor toma este cdigo
recin creado y lo enva al cliente por medio del protocolo HTTP.
Las aplicaciones de servidor muchas veces suelen ser la
mejor opcin para realizar aplicaciones web. La razn es
que, al ejecutarse sta en el servidor y no en la mquina
del cliente, ste no necesita ninguna capacidad aadida,
como s ocurre en el caso de querer ejecutar aplicaciones javascript o java. As pues, cualquier cliente dotado
de un navegador web bsico puede utilizar este tipo de
aplicaciones.
El hecho de que HTTP y HTML estn ntimamente ligados no debe dar lugar a confundir ambos trminos.
HTML es un lenguaje de marcas y HTTP es un protocolo.

Servidor

3 Aplicacin del lado del Servidor

El Servidor web se ejecuta en un ordenador mantenin- Una aplicacin del lado del servidor es cualquier progradose a la espera de peticiones por parte de un cliente ma o conjunto de instrucciones diseadas con la nalidad

4 SERVIDOR WEB LOCAL

de que un Servidor Web las procese para realizar alguna


accin. Las aplicaciones del lado del servidor estn escritas mediante algn lenguaje de programacin, entre los
que destacan:

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
El 75% de las aplicaciones del lado del servidor estn es- un dato de session.
critas en PHP, seguido de ASP y las dems opciones usadas de forma alternativa y muy casual.[2]
Cookies Contiene datos sobre todas las cookies adqui-

3.1

Procesamiento del lado del servidor

Un servidor web tiene la funcin de procesar los scripts


del lado del servidor para dar una salida en HTML y otros
lenguajes del lado del cliente al Navegador Web del cliente. La informacin a procesar podr ser cedida por el
cliente al script mediante cualquier aplicacin en el entorno del Navegador. Para ello pueden utilizarse formularios web, enlaces con los valores implcitos en la cadena
o cualquier otro mtodo.

ridas 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>"; }}
En el caso anterior, podra tomarse por supuesta la
decisin 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 y val es valor asignado a la variable.
http://ruta/archivo.php?ip=yes

Rack con servidores

2) En caso armativo el Script anterior genera el siguiente


cdigo html que es enviado posteriormente al navegador.
3.1.1

Procesamiento de PHP

<b>Su direccin web es 192.168.0.1 </b>

En PHP existen variables Globales que representan va- 3) El navegador interpreta el cdigo html y lo muestra
riables y datos de la conexiones que establece el Servidor similar a :
con el cliente.
Su direccin web es 192.168.0.1

Mtodo GET Contiene todas las variables que se en4 Servidor Web Local
van a travs del mtodo HTTP GET, se referencian a
travs del Array unidimensional $_GET['variable']. Esta
variable contiene el dato enviado por GET asociado a tal Un Servidor Web Local es aquel Servidor Web que reside
en una red local al equipo de referencia. El Servidor web
variable, en caso de que exista.
Local puede estar instalado en cualquiera de los equipos
que forman parte de una red local. Es por tanto obvio, que
Mtodo POST Contiene todas las variables que se en- todos los Servidores Web, son locales a la red local en la
van a travs del mtodo HTTP POST, se referencian a que se encuentran, o como mnimo, locales al sistema en
travs del Array unidimensional $_POST['variable']. Es- el que estn instalados.
ta variable contiene el dato enviado por POST asociado a Cuando un servidor Web se encuentra instalado en el mistal variable.
mo equipo desde el cual se desea acceder puede utilizarse

5
la direccin 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 conguracin, generalmente modicable.
Existen numerosas aplicaciones que facilitan la instalacin automtica 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 plataformas Linux, 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, ms simples pero ms rpidos, son:
lighttpd
thttpd

Vase tambin
PHP
ASP
Perl
Python/WSGI
CGI
.NET
JSP (Tecnologa Java )
CF (Adobe Coldfusion)
Servidor de aplicaciones
Servidor de archivos
Node.js

Referencias

[1] Form enctype.


[2] 1.

8 Enlaces externos
World Wide Web Consortium (W3C)

9 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

Text and image sources, contributors, and licenses

9.1

Text

Servidor web Fuente: http://es.wikipedia.org/wiki/Servidor%20web?oldid=80852699 Colaboradores: Joseaperez, Vanbasten 23, Comae,


Tony Rotondas, Voise, Dodo, Sms, Rsg, JavierCantero, Rodrigouf, 142857, Edupedro, FAR, Caos, Boticario, Airunp, JMPerez, Edub, Taichi, Emijrp, Rembiapo pohyiete (bot), Orgullobot~eswiki, RobotQuistnix, Platonides, Alhen, Superzerocool, Jomra, GermanX, Luismcl,
Tigerfenix, Er Komandante, Zalovitch, Qwertyytrewqqwerty, CEM-bot, Gabriel Acquistapace, Mad neg, -jem-, Thijs!bot, Alvaro qc, IrwinSantos, Botones, Isha, Hameryko, JAnDbot, Jugones55, TArea, Poc-oban, Lecuona, Limbo@MX, ColdWind, Gacq, Humberto, SirSlither, Fixertool, Cinevoro, Aibot, VolkovBot, Technopat, Jose gueredo, Queninosta, Matdrodes, Synthebot, Barri, AlleborgoBot, Muro
Bot, SieBot, Ctrl Z, Loveless, Tuwebhost, Raulmingardi, Tirithel, Carlospeo, Leonpolanco, Rge, SilvonenBot, AVBOT, Willirocker, MarcoAurelio, Diegusjaimes, MelancholieBot, Alhassam, Linfocito B, Arjuno3, Saloca, Ptbotgourou, Djrolando, Elmonstrito, SuperBraulio13,
Almabot, Ortisa, Xqbot, Jkbw, Torrente, Adryitan, MauritsBot, Cesarth15, D'ohBot, TobeBot, Halfdrag, AugustoRoccasalva, PatruBOT,
Dinamik-bot, TjBot, Jorge c2010, Axvolution, EmausBot, Savh, HRoestBot, J. A. Glvez, Arpabone, Rubpe19, MadriCR, ILoveSugar,
MerlIwBot, Jaido2012, KLBot2, Travelour, Invadibot, Elvisor, MaKiNeoH, Addbot, Admerxon, Fco Javier Pastor Lpez, Matiia, Luisgarciaweb y Annimos: 143

9.2

Images

Archivo:Inside_and_Rear_of_Webserver.jpg Fuente: http://upload.wikimedia.org/wikipedia/commons/3/38/Inside_and_Rear_of_


Webserver.jpg Licencia: CC BY 2.5 Colaboradores: Transferred from en.wikipedia to Commons by User:Quadell using CommonsHelper.
Artista original: Original uploader was Rodzilla at en.wikipedia
Archivo:Servidor005.JPG Fuente: http://upload.wikimedia.org/wikipedia/commons/6/6c/Servidor005.JPG Licencia: CC BY 2.0 Colaboradores: http://www.flickr.com/photos/61131881@N08/5562818045/in/set-72157626361094954/ Artista original: Hector Jaimes
Archivo:Wikimedia_Servers.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/8/87/Wikimedia_Servers.svg Licencia: CC
BY-SA 3.0 Colaboradores: ? Artista original: ?

9.3

Content license

Creative Commons Attribution-Share Alike 3.0

Das könnte Ihnen auch gefallen