Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ir a la navegaciónIr a la búsqueda
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.
Índice
1 Arquitectura
1.1 Petición GET
1.1.1 Esquema de una petición GET
1.1.1.1 Petición Web
1.1.1.2 1.1 Socket a dirección DNS
1.1.1.3 1.2 Resolución de DNS a IP
1.1.1.4 1.3 Recuperación de la regla DNS
1.1.1.5 1.4 Socket a dirección IP
1.1.1.6 1.5 Preparación de la petición
1.1.1.7 1.6 Apertura Caché
1.1.1.8 1.7 Efectuación de la petición
1.1.1.9 1.8 Consulta en Caché
1.1.1.10 1.9 Respuesta booleana de la existencia del recurso solicitado
1.1.1.11 2.0 Presentación visual del recurso
1.1.2 Petición GET pasiva
1.1.3 Procedimiento del navegador
1.2 Petición POST
1.2.1 Estructura de una petición POST
1.2.2 Composición de una petición POST
1.3 Estructura de una respuesta POST
1.3.1 Codificación del mensaje del cuerpo de la petición
1.3.2 Procedimiento del navegador
2 Funcionamiento
3 Aplicación del lado del Servidor
3.1 Procesamiento del lado del servidor
3.1.1 Procesamiento de PHP
3.1.1.1 Método GET
3.1.1.2 Método 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 Véase también
7 Referencias
8 Enlaces externos
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
www.host.com/index.html
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.
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 de window.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.
Muestra
Petition type
Referer
http-url-referer
index.php
Content-Length
contentlenght-int
63
Origin
http-url-origin
http://es.wikipedia.org
User-Agent
useragent-string
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
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 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)
Estructura de una respuesta POST
Artículo principal: Cabeceras HTTP
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
<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.
id=valor+de+la+variable&tama%A4o=4
que representado de otra forma es:
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, é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 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.
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".
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 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 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. <html>
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 "<b>Su dirección web no es 192.168.0.1 sino ".$_SERVER['REMOTE_ADDR']."</b>";
}}
</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 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.
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
«Form enctype».
«1».
Enlaces externos
World Wide Web Consortium (W3C)
Control de autoridades
Proyectos WikimediaWd Datos: Q11288Commonscat Multimedia: Web server
IdentificadoresBNF: 124996255 (data)LCCN: sh95009237
Categoría: Servidores web
Menú de navegación
No has accedidoDiscusiónContribucionesCrear una
cuentaAccederArtículoDiscusiónLeerEditarVer historialBuscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
En otros proyectos
Wikimedia Commons
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Elemento de Wikidata
Citar esta página
En otros idiomas
العربية
English
हहनदद
Bahasa Indonesia
Bahasa Melayu
Português
Русский
اردو
中文
54 más
Editar enlaces
Esta página se editó por última vez el 27 sep 2019 a las 00:38.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.