fbpx
Wikipedia

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 del modelo OSI. El término también se emplea para referirse al ordenador.

Arquitectura

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 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 petición anterior sería análoga a la siguiente dirección web:

www.host.com/index.html

Esquema de una petición GET

Petición web

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.

Elementos del entorno de usuario más comunes en navegadores web visuales:

Nombre Descripción
Hipervínculo, enlace o link Es una porción de contenido web, texto, imagen y otros elementos, que enlaza con una dirección web. Al pulsar un hipervínculo, el navegador genera una petición GET automática a la dirección URL de dicho link.
Formulario web Al realizar el envío satisfactorio de los datos de un formulario, el navegador web genera una petición GET o POST (comúnmente POST) automática a la par que envía los datos al servidor.
Barra de direcciones Todos los navegadores incluyen una barra de direcciones mediante la cual puede accederse manualmente a cualquier dirección URL, de modo que el navegador generará una petición GET automática a dicha URL cada vez que el usuario lo desee.
Script activo o pasivo Cualquier aplicación Javascript tiene acceso al estado del navegador, cómo puede modificar los datos que describen tal estado, de forma pasiva (sin medio de la intervención del usuario) o de forma activa (mediante alguna acción del usuario).
1.1 Socket a dirección DNS

Se produce una socket con un servidor dado en dirección IP mediante TCP. Por lo general las direcciones que el navegador posee inicialmente son direcciones DNS (direcciones alfanuméricas) que deberá convertir a direcciones numéricas.

1.2 Resolución de DNS a IP

Si la dirección 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 dirección IP junto a la dirección DNS en su base de datos de reglas DNS.

1.3 Recuperación de la regla DNS

Una vez almacenada la regla, se realiza una petición a la base de datos DNS para recuperar los valores de la regla.

1.4 Socket a dirección IP

Se produce una socket con la dirección IP mediante TCP. La dirección IP puede haberse recuperado en el paso anterior.

SOCKET 192.168.0.1
1.5 Preparación de la petición

Se crea la petición GET estableciendo la url ,un flag ,la priority de la petición y el method (implícitamente GET). _ :Cdskn

sm¨s cl+ dSP;LÑC,dsmpoen+09hg fk´ kcjw'948it9giiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii,w+x

1.6 Apertura Caché

Se abre y/o se crea una entrada en el http cache.

1.7 Efectuación de la petición

Se realiza la petición GET. Se leen las cabeceras HTTP de la http transaction y más 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 Respuesta booleana de la existencia 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.

2.0 Presentación visual del recurso

Se concluye la operación y se muestra en pantalla (si es preciso) la información. Luego de igual forma, comprueba que esté correcta.

Petición GET pasiva

Javascript permite realizar modificaciones en el estado del navegador. El estado del navegador viene definido por el array de objetos location del objeto global Window. Se referencia a tal objeto con window.location. En concreto window.location.href contiene la dirección actual del navegador web.

Si una parte del script ejecuta tal sentencia:

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 de window.location.search o window.location.protocol.

Procedimiento del navegador

La tarea del navegador web es crear la petición 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 búsqueda, los metatags.

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

Por motivos de convención se incluye en la petición la cabecera application/x-www-form-urlencoded, que indica el formato o codificación 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 envía automáticamente, pero en otras tecnologías web tal como AJAX, si se desea hacer correctamente una petición POST, debe ser especificado o instanciado el objeto: setRequestHeader("Content-type:application/x-www-form-urlencode"); ajax.send(data);

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.

Estructura de una petición POST

Estructura típica de una petición POST

Muestra

Petition type

POST url HTTP/1.1

POST comment.php HTTP/1.1

Referer

http-url-referer

index.php

Content-Length

contentlenght-int

63

Origin

http-url-origin

http://es.wikipedia.org

User-Agent

useragent-string

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) ...

Content-Type

content-type-string

application/x-www-form-urlencoded

Accept

mimetypes-accepted-string

application/xml,application/xhtml+xml ...

Accept-Language

language-accepted-string

es-ES,es;q=0.8

Accept-Charset

charset-accepted-string

ISO-8859-1,utf-8;q=0.7,*;q=0.3

Cookie

phpsessid-string

PHPSESSID=gm0ugf96iojuldio8i51u92716

Accept-Encoding

accept-encoding-string

gzip,deflate,sdch

Content

Content-string

&data=4&lang=es+es

Composición de una petición POST

Las cabeceras más comunes que se envían en una petición POST:

  • Petition type: Especifica el tipo de petición HTTP. (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 o MIME 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 una 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)

Estructura de una respuesta POST

Estructura típica de una respuesta POST Muestra
HTTP version & state HTTP-version-state HTTP/1.1 200 OK
Date date-string Tue, 07 Jun 2011 05:52:31 GMT
Server server-string Apache/2.2.17 (Win32) mod_ssl/2.2.17...
Expires expire-date-string Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control Cache-control-string no-store, no-cache, must-revalidate...
Pragma pragma-string no-cache
Content-Length Content-length-int 297
Content-Type Content-type-string text/html
Keep-Alive Keep-alive-string timeout=5, max=98
Connection Connection-string Keep-Alive
X-Powered-By X-powered-by-string PHP/5.3.5

Codificación del mensaje del cuerpo de la petición

Los datos que se envían en el cuerpo de la petición POST deben tener algún formato que permita manipularlos en un futuro procesamiento. Por ello la petición debe tener asignada la cabecera Content-Type cuyo valor será la codificación 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 especifica automáticamente y su valor es application/x-www-form-urlencoded, no obstante pueden especificarse por estándar otros dos valores: multipart/form-data y text/plain utilizando el atributo enctype del elemento form de la siguiente manera

<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-data se 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-urlencoded codifica 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

que representado de otra forma es:

id: valor de la variable
tamaño: 4

Procedimiento del navegador

El navegador recopila la información del formulario para crear la petición y enviarla. Las cabeceras las envía junto a la petición POST, y se recopilan sobre la base de los metatags definidos en el código, los automáticos del navegador y las cookies. Es el navegador, también, el que codifica los datos si es necesario. [cita requerida]

Funcionamiento

 
Servidor

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, este 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 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 este, 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, este 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".

Aplicación del lado del servidor

Una aplicación del lado del servidor es cualquier programa o conjunto de instrucciones diseñadas con la finalidad de que un servidor web las procese para realizar alguna acción. Las aplicaciones del lado del servidor están escritas mediante algún lenguaje de programación, entre los que destacan:

LenguajeFecha de primera versión estableSistema operativoÚltima versión estable
PHP1995Multiplataforma5.6.4
ASP1998Windows (Algunas versiones)4.0
Perl1987Multiplataforma5.12.3
Python1991Multiplataforma3.2.0
Ruby1995Multiplataforma1.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 del lado del servidor

Un servidor web tiene la función 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 información a procesar podrá ser cedida por el cliente al script mediante cualquier aplicación en el entorno del navegador. Para ello pueden utilizarse formularios web, enlaces con los valores implícitos en la cadena o cualquier otro método.

 
Rack con servidores

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 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 sesión.

Cookies

Contiene datos sobre todas las cookies adquiridas en la petición al servidor, proporcionadas por el navegador en la petición HTTP. Se referencia a través del array unidimensional $_COOKIES['variable'].

Servidor

Contiene datos proporcionados por el servidor web. Se referencia a través del array unidimensional $_SERVER['variable'].

Procesamiento

1) Dado el siguiente código PHP:

if(!empty($_GET['ip']){  if($_GET['ip']=="yes"){  ip();  } }  function ip(){  if ($_SERVER['REMOTE_ADDR']=="192.168.0.1"){  echo "<b>Su dirección web es 192.168.0.1 </b>";  } else {  echo "Su dirección web no es 192.168.0.1 sino ".$_SERVER['REMOTE_ADDR'];  } } 

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 y val 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:

<b>Su dirección web es 192.168.0.1 </b> 

3) El navegador interpreta el código HTML (PHP Siempre devuelve HTML al navegador) y lo muestra similar a:

Su dirección web es 192.168.0.1

Servidor web local

Un servidor web local es aquel servidor web que reside en una red local al equipo de referencia. El servidor web local puede estar instalado en cualquiera de los equipos que forman parte de una red local. Es por tanto obvio, que todos los servidores web, son locales a la red local en la que se encuentran, o como mínimo, locales al sistema en el que están instalados.

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 plataformas Linux, WAMP en sistemas Windows y MAMP en sistemas Apple Macintosh.

Software

Algunos servidores web importantes son:

Otros servidores, más simples pero más rápidos, son:

Véase también

Referencias

  1. «Form enctype». 
  2. «1». 

Enlaces externos

  • World Wide Web Consortium (W3C)
  •   Datos: Q11288
  •   Multimedia: Web server

servidor, servidor, servidor, http, programa, informático, procesa, aplicación, lado, servidor, realizando, conexiones, bidireccionales, unidireccionales, síncronas, asíncronas, cliente, generando, cediendo, respuesta, cualquier, lenguaje, aplicación, lado, cl. Un servidor web o servidor HTTP es un programa informatico que procesa una aplicacion del lado del servidor realizando conexiones bidireccionales o unidireccionales y sincronas o asincronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o aplicacion del lado del cliente El codigo recibido por el cliente es renderizado por un navegador web Para la transmision de todos estos datos suele utilizarse algun protocolo Generalmente se usa el protocolo HTTP para estas comunicaciones perteneciente a la capa de aplicacion del modelo OSI El termino tambien se emplea para referirse al ordenador Indice 1 Arquitectura 1 1 Peticion GET 1 1 1 Esquema de una peticion GET 1 1 1 1 Peticion web 1 1 1 2 1 1 Socket a direccion DNS 1 1 1 3 1 2 Resolucion de DNS a IP 1 1 1 4 1 3 Recuperacion de la regla DNS 1 1 1 5 1 4 Socket a direccion IP 1 1 1 6 1 5 Preparacion de la peticion 1 1 1 7 1 6 Apertura Cache 1 1 1 8 1 7 Efectuacion de la peticion 1 1 1 9 1 8 Consulta en Cache 1 1 1 10 1 9 Respuesta booleana de la existencia del recurso solicitado 1 1 1 11 2 0 Presentacion visual del recurso 1 1 2 Peticion GET pasiva 1 1 3 Procedimiento del navegador 1 2 Peticion POST 1 2 1 Estructura de una peticion POST 1 2 2 Composicion de una peticion POST 1 3 Estructura de una respuesta POST 1 3 1 Codificacion del mensaje del cuerpo de la peticion 1 3 2 Procedimiento del navegador 2 Funcionamiento 3 Aplicacion del lado del servidor 3 1 Procesamiento del lado del servidor 3 1 1 Procesamiento de PHP 3 1 1 1 Metodo GET 3 1 1 2 Metodo POST 3 1 1 3 Sesiones 3 1 1 4 Cookies 3 1 1 5 Servidor 3 1 1 6 Procesamiento 4 Servidor web local 5 Software 6 Vease tambien 7 Referencias 8 Enlaces externosArquitectura EditarPeticion GET Editar Un servidor web opera mediante el protocolo HTTP de la capa de aplicacion del Modelo OSI Al protocolo HTTP se le asigna habitualmente el puerto TCP 80 Las peticiones al servidor suelen realizarse mediante HTTP utilizando el metodo de peticion GET en el que el recurso se solicita a traves de la URL al servidor web GET index html HTTP 1 1 HOST www host comEn la barra de URL de un navegador cualquiera la peticion anterior seria analoga a la siguiente direccion web www host com index html Esquema de una peticion GET Editar Peticion web Editar Vease tambien Navegador web 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 peticion de forma activa Una peticion web no solo 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 mas comunes en navegadores web visuales Nombre DescripcionHipervinculo enlace o link Es una porcion de contenido web texto imagen y otros elementos que enlaza con una direccion web Al pulsar un hipervinculo el navegador genera una peticion GET automatica a la direccion URL de dicho link Formulario web Al realizar el envio satisfactorio de los datos de un formulario el navegador web genera una peticion GET o POST comunmente POST automatica a la par que envia los datos al servidor Barra de direcciones Todos los navegadores incluyen una barra de direcciones mediante la cual puede accederse manualmente a cualquier direccion URL de modo que el navegador generara una peticion GET automatica a dicha URL cada vez que el usuario lo desee Script activo opasivo Cualquier aplicacion Javascript tiene acceso al estado del navegador como puede modificar los datos que describen tal estado de forma pasiva sin medio de la intervencion del usuario o de forma activa mediante alguna accion del usuario 1 1 Socket a direccion DNS Editar Se produce una a href Socket de Internet html title Socket de Internet socket a con un servidor dado en direccion IP mediante TCP Por lo general las direcciones que el navegador posee inicialmente son direcciones DNS direcciones alfanumericas que debera convertir a direcciones numericas 1 2 Resolucion de DNS a IP Editar Si la direccion 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 direccion IP junto a la direccion DNS en su base de datos de reglas DNS 1 3 Recuperacion de la regla DNS Editar Una vez almacenada la regla se realiza una peticion a la base de datos DNS para recuperar los valores de la regla 1 4 Socket a direccion IP Editar Se produce una a href Socket de Internet html title Socket de Internet socket a con la direccion IP mediante TCP La direccion IP puede haberse recuperado en el paso anterior SOCKET 192 168 0 1 1 5 Preparacion de la peticion Editar Se crea la peticion GET estableciendo la url un flag la priority de la peticion y el method implicitamente GET Cdsknsm s cl dSP LNC dsmpoen 09hg fk kcjw 948it9giiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii w x 1 6 Apertura Cache Editar Se abre y o se crea una entrada en el http cache 1 7 Efectuacion de la peticion Editar Se realiza la peticion GET Se leen las cabeceras HTTP de la http transaction y mas tarde el cuerpo de la http transaction GET index html HTTP 1 1 1 8 Consulta en Cache Editar Se consulta en el cache de disco si existe una entrada en el cache asociada al recurso que se ha solicitado Los valores son created true o false y key la url del recurso 1 9 Respuesta booleana de la existencia del recurso solicitado Editar Si la entrada no existe si el valor de created es false se escriben los datos en el cache de disco Si no se lee directamente 2 0 Presentacion visual del recurso Editar Se concluye la operacion y se muestra en pantalla si es preciso la informacion Luego de igual forma comprueba que este correcta Peticion GET pasiva Editar Javascript permite realizar modificaciones en el estado del navegador El estado del navegador viene definido por el array de objetos location del objeto global Window Se referencia a tal objeto con window location En concreto window location href contiene la direccion actual del navegador web Si una parte del script ejecuta tal sentencia window location href http wikipedia org El navegador hara tal peticion web sin que el usuario haya mediado en tal circunstancia o sus efectos Del mismo modo se producira una nueva peticion GET si se altera el valor de window location search o window location protocol Procedimiento del navegador Editar La tarea del navegador web es crear la peticion 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 busqueda los metatags lt a href http es wikipedia org gt Entrar lt a gt Al pulsar en el enlace el navegador crea automaticamente la peticion GET y las cabeceras de la peticion sobre la base de los metatags cabeceras definidas las cookies y cabeceras automaticas del navegador para luego enviarlas junto a la peticion al servidor Peticion POST Editar Es el segundo tipo de peticion HTTP mas utilizado Los datos a enviar al servidor se incluyen en el cuerpo de la misma peticion con las cabeceras HTTP asignadas correspondientemente respecto al tipo de peticion Generalmente se asocia con los formularios web en los que los datos suelen ser cifrados para enviarlos de manera segura al servidor Por motivos de convencion se incluye en la peticion la cabecera application x www form urlencoded que indica el formato o codificacion de los datos a enviar esta es variable gt valor en el formato variable valor separada cada par variable gt valor por amp Esta cabecera en los formularios HTML se envia automaticamente pero en otras tecnologias web tal como AJAX si se desea hacer correctamente una peticion POST debe ser especificado o instanciado el objeto setRequestHeader Content type application x www form urlencode ajax send data Si se utilizase el metodo GET los datos deberian de ser anadidos a la URL lo que los expondria a ser vistos de forma directa Estructura de una peticion POST Editar Articulo principal Cabeceras HTTP Estructura tipica de una peticion POST MuestraPetition type POST url HTTP 1 1 POST comment php HTTP 1 1Referer http url referer index phpContent Length contentlenght int 63Origin http url origin http es wikipedia orgUser Agent useragent string Mozilla 5 0 Windows U Windows NT 6 1 en US Content Type content type string application x www form urlencodedAccept mimetypes accepted string application xml application xhtml xml Accept Language language accepted string es ES es q 0 8Accept Charset charset accepted string ISO 8859 1 utf 8 q 0 7 q 0 3Cookie phpsessid string PHPSESSID gm0ugf96iojuldio8i51u92716Accept Encoding accept encoding string gzip deflate sdchContent Content string amp data 4 amp lang es esComposicion de una peticion POST Editar Las cabeceras mas comunes que se envian en una peticion POST Petition type Especifica el tipo de peticion HTTP Esta cabecera no tiene nombre se envia tal cual Referer Especifica la url desde la cual se hizo la peticion POST Content Length Especifica la longitud en bytes de los datos enviados en el cuerpo de la peticion Origin Especifica la url principal del sitio cita requerida User Agent Especifica el identificador del navegador web desde el cual se hizo la peticion Content Type Especifica el formato o MIME de los datos enviados en el cuerpo de la peticion Accept Especifica el MIME que se espera en la respuesta Accept Language Especifica el codigo del lenguaje esperado en la respuesta Accept Charset Especifica la codificacion que se espera en la respuesta Cookie Especifica un identificador de sesion en la peticion derivado de una cookie Accept Encoding Especifica el tipo de codificacion generalmente compresion que se espera de la respuesta No todos los navegadores envian esta cabecera Estructura de una respuesta POST Editar Articulo principal Cabeceras HTTP Estructura tipica de una respuesta POST MuestraHTTP version amp state HTTP version state HTTP 1 1 200 OKDate date string Tue 07 Jun 2011 05 52 31 GMTServer server string Apache 2 2 17 Win32 mod ssl 2 2 17 Expires expire date string Thu 19 Nov 1981 08 52 00 GMTCache Control Cache control string no store no cache must revalidate Pragma pragma string no cacheContent Length Content length int 297Content Type Content type string text htmlKeep Alive Keep alive string timeout 5 max 98Connection Connection string Keep AliveX Powered By X powered by string PHP 5 3 5Codificacion del mensaje del cuerpo de la peticion Editar Los datos que se envian en el cuerpo de la peticion POST deben tener algun formato que permita manipularlos en un futuro procesamiento Por ello la peticion debe tener asignada la cabecera Content Type cuyo valor sera la codificacion de los datos De este modo el sistema podra 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 debera ser incluido en esta cabecera 1 En HTML la cabecera Content Type se especifica automaticamente y su valor es application x www form urlencoded no obstante pueden especificarse por estandar otros dos valores multipart form data y text plain utilizando el atributo enctype del elemento form de la siguiente manera lt form enctype multipart form data gt lt form gt lt form enctype text plain gt lt form gt lt form enctype application x www form urlencoded gt lt form gt 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 imagenes videos o ejecutables Para varios valores separar por comas El application x www form urlencoded codifica de forma automatica los valores de todos los elementos del formulario del modo variable valor separados por amp 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 alfanumericos por HH donde HH representa el numero hexadecimal del caracter ASCII id valor de la variable amp tama A4o 4que representado de otra forma es id valor de la variabletamano 4Procedimiento del navegador Editar El navegador recopila la informacion del formulario para crear la peticion y enviarla Las cabeceras las envia junto a la peticion POST y se recopilan sobre la base de los metatags definidos en el codigo los automaticos del navegador y las cookies Es el navegador tambien el que codifica los datos si es necesario cita requerida Funcionamiento Editar Servidor El servidor web se ejecuta en un ordenador manteniendose a la espera de peticiones por parte de un cliente un navegador web y responde a estas peticiones adecuadamente mediante una pagina web que se exhibira en el navegador o mostrando el respectivo mensaje si se detecto algun error A modo de ejemplo al teclear www wikipedia org en nuestro navegador este realiza una peticion HTTP al servidor de dicha direccion El servidor responde al cliente enviando el codigo HTML de la pagina el cliente una vez recibido el codigo lo interpreta y lo exhibe en pantalla Como vemos con este ejemplo el cliente es el encargado de interpretar el codigo HTML es decir de mostrar las fuentes los colores y la disposicion de los textos y objetos de la pagina el servidor tan solo se limita a transferir el codigo de la pagina sin llevar a cabo ninguna interpretacion de la misma Ademas de la transferencia de codigo HTML los servidores web pueden entregar aplicaciones web Estas son porciones de codigo 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 maquina del usuario Son las aplicaciones tipo Java applets o Javascript el servidor proporciona el codigo de las aplicaciones al cliente y este mediante el navegador las ejecuta Es necesario por tanto que el cliente disponga de un navegador con capacidad para ejecutar aplicaciones tambien llamadas scripts Comunmente los navegadores permiten ejecutar aplicaciones escritas en lenguaje Javascript y Java aunque pueden anadirse mas lenguajes mediante el uso de plugins Aplicaciones en el lado del servidor el servidor web ejecuta la aplicacion esta una vez ejecutada genera cierto codigo HTML el servidor toma este codigo recien creado y lo envia al cliente por medio del protocolo HTTP Las aplicaciones de servidor muchas veces suelen ser la mejor opcion para realizar aplicaciones web La razon es que al ejecutarse esta en el servidor y no en la maquina del cliente este no necesita ninguna capacidad anadida como si ocurre en el caso de querer ejecutar aplicaciones Javascript o Java Asi pues cualquier cliente dotado de un navegador web basico puede utilizar este tipo de aplicaciones El hecho de que HTTP y HTML esten intimamente ligados no debe dar lugar a confundir ambos terminos HTML es un lenguaje de marcas y HTTP es un protocolo Aplicacion del lado del servidor EditarUna aplicacion del lado del servidor es cualquier programa o conjunto de instrucciones disenadas con la finalidad de que un servidor web las procese para realizar alguna accion Las aplicaciones del lado del servidor estan escritas mediante algun lenguaje de programacion entre los que destacan LenguajeFecha de primera version estableSistema operativoUltima version establePHP1995Multiplataforma5 6 4ASP1998Windows Algunas versiones 4 0Perl1987Multiplataforma5 12 3Python1991Multiplataforma3 2 0Ruby1995Multiplataforma1 9 3 p125El 75 de las aplicaciones del lado del servidor estan escritas en PHP seguido de ASP y las demas opciones usadas de forma alternativa y muy casual 2 Procesamiento del lado del servidor Editar Un servidor web tiene la funcion 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 informacion a procesar podra ser cedida por el cliente al script mediante cualquier aplicacion en el entorno del navegador Para ello pueden utilizarse formularios web enlaces con los valores implicitos en la cadena o cualquier otro metodo Rack con servidores Procesamiento de PHP Editar Articulo principal PHP En PHP existen variables globales que representan variables y datos de la conexiones que establece el servidor con el cliente Metodo GET Editar Contiene todas las variables que se envian a traves del metodo HTTP GET se referencian a traves del array unidimensional GET variable Esta variable contiene el dato enviado por GET asociado a tal variable en caso de que exista Metodo POST Editar Contiene todas las variables que se envian a traves del metodo HTTP POST se referencian a traves del array unidimensional POST variable Esta variable contiene el dato enviado por POST asociado a tal variable Sesiones Editar Contiene datos de sesion adquiridos mediante una peticion GET POST o la lectura de una cookie cita requerida Se referencia a traves del array unidimensional SESSION variable Esta variable contiene un dato de sesion Cookies Editar Contiene datos sobre todas las cookies adquiridas en la peticion al servidor proporcionadas por el navegador en la peticion HTTP Se referencia a traves del array unidimensional COOKIES variable Servidor Editar Contiene datos proporcionados por el servidor web Se referencia a traves del array unidimensional SERVER variable Procesamiento Editar 1 Dado el siguiente codigo PHP if empty GET ip if GET ip yes ip function ip if SERVER REMOTE ADDR 192 168 0 1 echo lt b gt Su direccion web es 192 168 0 1 lt b gt else echo Su direccion web no es 192 168 0 1 sino SERVER REMOTE ADDR En el caso anterior podria tomarse por supuesta la decision 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 2 En caso afirmativo el script anterior genera el siguiente codigo HTML que es enviado posteriormente al navegador lt b gt Su direccion web es 192 168 0 1 lt b gt 3 El navegador interpreta el codigo HTML PHP Siempre devuelve HTML al navegador y lo muestra similar a Su direccion web es 192 168 0 1Servidor web local EditarUn servidor web local es aquel servidor web que reside en una red local al equipo de referencia El servidor web local puede estar instalado en cualquiera de los equipos que forman parte de una red local Es por tanto obvio que todos los servidores web son locales a la red local en la que se encuentran o como minimo locales al sistema en el que estan instalados Cuando un servidor web se encuentra instalado en el mismo equipo desde el cual se desea acceder puede utilizarse la direccion 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 configuracion generalmente modificable Existen numerosas aplicaciones que facilitan la instalacion automatica 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 EditarAlgunos servidores web importantes son Nginx Apache Internet Information Services IIS Cherokee TomcatOtros servidores mas simples pero mas rapidos son lighttpd thttpdVease tambien EditarPHP ASP Perl Python WSGI CGI NET JSP tecnologia Java CF Adobe Coldfusion Servidor de aplicaciones Servidor de archivos Node jsReferencias Editar Form enctype 1 Enlaces externos EditarWorld Wide Web Consortium W3C Datos Q11288 Multimedia Web serverObtenido de https es wikipedia org w index php title Servidor web amp oldid 137554939, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos