Publicado el 9 de Septiembre del 2020
1.987 visualizaciones desde el 9 de Septiembre del 2020
429,9 KB
27 paginas
Creado hace 8a (14/04/2016)
Teleinformática y Redes 2016
Protocolo HTTP 1.1
RFC 2616
¿Por qué ver este protocolo?
● HTTP comprende
alrededor del 53% del
tráfico en Internet de
América Latina.
● Esta cifra crece a
medida que más
aplicaciones trasladan
su forma de operación a
la web (ej: webchat).
Application
Youtube
HTTP
BitTorrent
SSL - Other
Netflix
Facebook
MPEG - Other
RTMP
Flash Video
Other (email, ftp, etc)
Share
30.11 %
12.18 %
11.65 %
10.31 %
5.91 %
5.66 %
2.14 %
1.82 %
1.70 %
18.52 %
Latin America, Fixed Access, Peak Period, Top Apps by Bytes
Global Internet Phenomena Report: 2015, Sandvine Inc. ULC
https://www.sandvine.com/downloads/general/global-internet-phenomena/2015/
global-internet-phenomena-report-latin-america-and-north-america.pdf
Teleinformática y Redes 2016
2
Arquitectura cliente/servidor
Equipo cliente
Proceso
cliente
Pedido
Red
Respuesta
Proceso
servidor
Equipo servidor
● En la arquitectura
cliente/servidor, el
cliente es un
componente que realiza
peticiones de servicio a
otro componente, el
servidor, que satisface
dichas peticiones.
Ambos componentes
están conectados
mediante algún tipo de
red.
Teleinformática y Redes 2016
3
HyperText Transfer Protocol
HTTP 1.0 - IETF '96 – RFC 1945
● Se crea una pagina web mediante HTML, alojada
como un archivo en el servidor web, en un directorio
publico. El usuario escribe una dirección web en su
cliente web o User Agent (UA), el UA establece una
conexion con el servidor web y solicita el recurso.
● El servidor web busca el archivo y, si existe, lo
remite al cliente. Por cada objeto requerido se
realiza una nueva petición independiente de la
anterior.
Teleinformática y Redes 2016
4
Características de HTTP
● Capa 7 Opera en capa de Aplicación sobre transporte TCP
● Petición/Respuesta. Basa su operación en transacciones.
● Sin estado. Cada transacción HTTP es independiente de
la anterior y de la siguiente.
● Bidireccional. Permite al servidor web enviar datos al
cliente y viceversa.
● Negocia capacidades. Permite al UA negociar caracterís-
ticas tales como tipo de contenido aceptados, idioma, etc
Intermediarios y caché. Permite que estaciones actúen
como intermediarios y que se almacenen y recuperen
copias de objetos para mejorar los tiempos de respuesta.
●
Teleinformática y Redes 2016
5
HyperText Markup Language
HTML – CERN '91
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01//EN" "http://www.w3.org/
TR/html4/strict.dtd">
<html>
<head>
<title>Planet Express</title>
</head>
<body bgcolor="#CCCCCC">
<center>
<img src="logo.png" width="150"
height="113">
<h1>Planet Express</h1>
<p>Bienvenido a Planet Express:
repartos a todo el Universo.</p>
<p>
<a href="envios.html">
Envios</a> /
<a href="staff.html">
Staff</a>
</p>
</center>
</body>
</html>
● Es un lenguaje de
etiquetas que permite
crear documentos
estructurados
especificando la
semántica del texto, tal
como párrafos,
encabezados, listas,
enlaces y tablas. Permite
embeber imágenes,
formularios y otros
objetos. Los documentos
se escriben en texto plano
con etiquetas o tags entre
signos < y >
Teleinformática y Redes 2016
6
La Web como
sistema distribuido
media.example.net
www.ejemplo.ar
www.unlu.za
Teleinformática y Redes 2016
7
Páginas estáticas
Equipo servidor
HTTP Request
Equipo cliente
Archivo HTML
Web
Server
Sistema de archivos
(espacio público)
Red
HTTP Reply
User
Agent
Teleinformática y Redes 2016
8
Páginas estáticas
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01//EN" "http://www.w3.org/
TR/html4/strict.dtd">
<html>
<head>
<title>Planet Express</title>
</head>
<body bgcolor="#CCCCCC">
<center>
<img src="logo.png" width="150"
height="113">
<h1>Planet Express</h1>
<p>Bienvenido a Planet Express:
repartos a todo el Universo.</p>
<p>
<a href="envios.html">
Envios</a> /
<a href="staff.html">
Staff</a>
</p>
</center>
</body>
</html>
Teleinformática y Redes 2016
9
Procesamiento del
lado del servidor
● Páginas HTML que se
generan mediante un
proceso auxiliar cada
vez que un cliente las
solicita. De ahí el
nombre páginas
dinámicas.
Petición
Equipo servidor
Parámetros
Proceso
Web
Server
Respuesta
Respuesta
Sistema de archivos
● La comunidad debió
acordar una interfaz de
comunicación entre el
proceso servidor y el
proceso auxiliar que
genera la respuesta.
Teleinformática y Redes 2016
10
Common Gateway Interface
NCSA '93 – RFC 3875
● Una interfaz simple para ejecutar programas externos en
un servidor web, en forma independiente de la
plataforma (y del lenguaje de programación). El servidor
actúa como una pasarela de aplicación: recibe la petición
del cliente, selecciona el script CGI que manejará la
petición, convierte el pedido del cliente a un pedido CGI,
ejecuta el script, reconvierte la respuesta CGI y la remite
al cliente. CGI define un conjunto de parámetros
abstractos que describen la petición del cliente.
● El servidor es responsable de manejar la conexión y
transferir los datos, mientras que el script maneja las
cuestiones de aplicación, el mantenimiento de sesión y el
procesamiento de los documentos.
Teleinformática y Redes 2016
11
Common Gateway Interface
● Dirección URL
– <scheme> "://" <server-name> ":" <server-
port> <script-path> <extra-path> "?" <query-
string>
● Ejemplo
– http://www.tyr.unlu.edu.ar/cms/blog?page=7
● Variables CGI relevantes
– PATH_INFO, PATH_TRANSLATED, QUERY_STRING
– REMOTE_ADDR, REMOTE_HOST, REMOTE_USER
– REQUEST_METHOD, SCRIPT_NAME
– SERVER_NAME, SERVER_PROTOCOL, SERVER_SOFTWARE
Teleinformática y Redes 2016
12
Método HTTP GET
● Los datos son enviados por el cliente al servidor codificados en
la URI, despues de "?".
● Los datos son enviados por el servidor al proceso auxiliar en la
variable de entorno QUERY_STRING.
● Ejemplo: http://www.example.com/catalogo.cgi?cate
goria=23&marca=Acme
– Variables de entorno (parcial):
HTTP_HOST = www.example.com
REQUEST_METHOD = GET
REQUEST_URI = /catalogo.cgi
QUERY_STRING = categoria=23&marca=Acme
Teleinformática y Redes 2016
13
Método HTTP POST
● Los datos son enviados por el cliente al servidor en el cuerpo de
la petición HTTP.
● Los datos son enviados por el servidor al proceso auxiliar como
entrada estándar (stdin).
● Ejemplo: http://www.example.com/catalogo.cgi
– Variables de entorno (parcial):
HTTP_HOST = www.example.com
REQUEST_METHOD = POST
REQUEST_URI = /catalogo.cgi
QUERY_STRING =
– Entrada estándar:
categoria=23
marca=Acme
Teleinformática y Redes 2016
14
Common Gateway Interface
● El proceso auxiliar puede estar desarrollado
utilizando cualquier lenguaje que implemente la
interfaz CGI: C, Bash, Perl, PHP, Python, etc...
● Todo script DEBE emitir una respuesta.
– Status
– Content-Type
– Location
– Body
Teleinformática y Redes 2016
15
Common Gateway Interface
Equipo servidor
Entorno (GET/POST)
Entrada estándar (POST)
Proceso
CGI
Interfaz CGI
Web
Server
Respuesta
Petición HTTP
GET ó POST
Equipo cliente
User
Agent
Respuesta HTTP
Sistema de archivos
Teleinformática y Redes 2016
16
Ejemplo de código PHP
<?php
$peso = $_POST['peso'];
$destino = $_POST['destino'];
$costo = $costo_base + costo_a($destino) * $peso;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Planet Express</title>
</head>
<body bgcolor="#CCCCCC">
<img src="logo.png" width=”150” height=”113” align="left">
<form method="POST">
<p><strong>Tarifador de envios</strong></p>
<p>Peso: <input type="text" name="peso" value="30" size="5"> kg.<br>
Destino: <select name="destino">
<option>Marte</option>
<option>Tierra</option>
<option>Jupiter</option>
</select>
<input type="submit" name="submit" value="Recalcular"></p>
<p>Costo del envio: <strong>$ <?php echo $costo ?></strong></p>
</form>
</body>
</html>
Teleinformática y Redes 2016
17
Common Gateway Interface
Equipo servidor
HTTP POST
PESO=30
DESTINO=MARTE
Interfaz CGI
Proceso
Web
Server
Respuesta
Respuesta
User Agent
Teleinformática y Redes 2016
18
Mantenimiento de
información de estado
● El protocolo HTTP no mantiene información de
estado sobre el usuario entre transacciones sucesivas
(se dice que es stateless).
● Muchas aplicaciones web requieren mantener esta
información entre las diferentes peticiones HTTP
para brindarle al usuario contenido personalizado
(ej: datos de login, ubicación geográfica, etc.)
● Una solución adoptada por muchas aplicaciones web
es el uso de Cookies, un fragmento de texto que el
servidor web puede almacenar en el cliente y que el
cliente web remite en el Header de cada petición.
Teleinformática y Redes 2016
19
Cookies
(Netscape '94, RFC 2965)
Equipo servidor
1
GET /index.html
...
Web
Server
2
Aplicación
Web
HTTP/1.1 200 OK
Set-Cookie: IDSESION=0ADF
...
Equipo cliente
User
Agent
● El navegador web realiza una petición por un recurso
al servidor web.
● El servidor web responde retornando el recurso
solicitado e incluyendo con el encabezado Set-Cookie
un par (clave, valor) que identificará al cliente.
Teleinformática y Redes 2016
20
Equipo servidor
Web
Server
Aplicación
Web
3
GET /productos
Cookie: IDSESION=0ADF
...
4
HTTP/1.1 200 OK
...
IDSESION
00AB
0ADF
7CC0
…
Cookies
Equipo cliente
User
Agent
IDSESION=0ADF
● El cliente almacena los valores recibidos y en cada
petición posterior al mismo servidor, incluirá un
encabezado Cookie con los valores asignados.
● La aplicación web utiliza esos valores para identificar
unívocamente a un cliente o sesión de usuario.
Teleinformática y Redes 2016
21
Equipo servidor
5
GET /comprar?idproducto=30
( 3 ) Petición HTTP
Cookie: IDSESION=0ADF
...
IDSESION COMPRAS
00AB (vacío)
0ADF (producto 30)
7CC0 (producto 19)
…
Comentarios de: Protocolo HTTP 1.1 RFC 2616 - Teleinformática y Redes (0)
No hay comentarios