Internet y el protocolo HTTP

Anuncio
Internet y el protocolo HTTP
CI-2413 Desarrollo de aplicaciones
para Internet
Prof. Braulio José Solano Rojas
ECCI, UCR
La red Internet
●
1er tarea corta: Entregar dos páginas a doble
espacio con Arial 12 de la historia de Internet
(presente, pasado y futuro).
●
internet = interconnected network = red de
redes
●
Elementos:
●
Backbones, redes regionales, redes comerciales,
redes locales
2 de 19
La red Internet (Capas) (1)
Aplicación
Transporte
Internet
Enlace (red)
Aplicación
Transporte
Internet
Enlace (red)
Cliente
Servidor
3 de 19
La red Internet (Capas) (2)
4 de 19
La red Internet (¿Estoy conectado?)
●
¿Estoy conectado a Internet?
●
●
¿Puedo hacer ping hacia una máquina en el
mundo? Algunas veces la circulación está
limitada por Firewalls.
Servicios y recursos
●
En Internet toda la comunicación se hace por
medio de “sockets”, que es el término anglosajón
utilizado para describir puntos finales de
comunicación. Podríamos decir que en Internet un
“socket” es una tripleta del tipo (protocolo, dirección
IP, puerto o identificador del servicio).
5 de 19
La red Internet (Servicios) (1)
●
Servicios y recursos
●
Protocolos de transporte
–
–
●
TCP: Orientado a la conexión.
UDP: Sin conexión.
Servicios (aplicaciones) y su identificador (puerto)
–
–
–
–
–
TELNET (puerto 23)
FTP – File Transport Protocol (puertos 21/control –
20/datos)
DNS – Domain Name System (puerto 53)
SMTP – Simple Mail Transfer Protocol (puerto 25)
NFS – Network File System (puertos 111 y 2049)
6 de 19
La red Internet (Servicios) (2)
●
Servicios y recursos
●
Servicios (aplicaciones) y su identificador (puerto)
–
–
–
–
–
DHCP – Dynamic Host Configuration Protocol (puertos
67 y 68)
HTTP – HyperText Transport Protocol (puerto 80)
SQLServer – Microsoft SQL Server (puerto 1433)
MySQL – MySQL Server (puerto 3306)
Postgresql – Postgresql Server (puerto 5432)
7 de 19
La red Internet (Ejemplos)
●
Ejemplos de servicios en servidores
●
(TCP, titanic.ecci.ucr.ac.cr, 80)
●
(TCP, titanic.ecci.ucr.ac.cr, 3306)
●
(TCP, titanic.ecci.ucr.ac.cr, 5432)
●
(TCP, www.ecci.ucr.ac.cr, 80)
●
(UDP, set.ecci.ucr.ac.cr, 25)
8 de 19
World Wide Web
●
Protocolo de Transporte de Hipertexto HTTP
●
●
●
●
Se abre un “socket” en el puerto 80 del destino
(puede necesitar DNS).
GET / POST
Respuesta (error o documento).
Estructura WWW
●
●
●
●
HTML (DTD basado en SGML).
XHTML (DTD basado en XML).
Otros DTD.
Otros tipos de archivo.
9 de 19
Protocolo HTTP
●
RFC 1945 (HTTP/1.0, 1996)
●
RFC 2616 (HTTP/1.1, 1999)
●
RFC 2774 (HTTP/1.2, 2000)
●
https://http2.github.io/
10 de 19
Protocolo HTTP
●
Toda interacción en una aplicación web es
transportada utilizando el protocolo Hypertext
Transfer Protocol (HTTP).
●
Para desarrollar aplicaciones web es necesario
conocer el funcionamiento de dicho protocolo.
●
El protocolo tiene una serie de verbos
(acciones) posibles y de códigos de respuesta,
además de la transferencia documental.
11 de 19
Protocolo HTTP
12 de 19
Ejemplo del protocolo HTTP
mensaje.html
●
Vamos a obtener el archivo mensaje.html con:
●
form
–
–
●
action
Method
Campos (input)
–
–
id, name
type
14 de 19
mensaje.html
GET http://localhost:80/CI2413/mensaje.html HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
rv:42.0) Gecko/20100101 Firefox/42.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/
*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: _ga=GA1.1.1463916326.1438747674
Connection: keep-alive
15 de 19
mensaje.html
HTTP/1.1 200 OK
Date: Mon, 24 Aug 2015 05:14:52 GMT
Server: Apache/2.4.9 (Win64) mod_fcgid/2.3.9
Last-Modified: Fri, 03 Oct 2014 21:57:09 GMT
ETag: "1d4-5048bd08b9794"
Accept-Ranges: bytes
Content-length: 468
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo básico</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form name="form_mensaje" id="form_mensaje" method="post" action="mensaje.php">
<p>
<label>Mensaje<br />
<textarea name="mensaje"></textarea>
</label>
</p>
<p>
<input type="submit" name="submit" value="Enviar el mensaje" />
</p>
</form>
</body>
</html>
16 de 19
mensaje.php
POST http://localhost:80/CI2413/mensaje.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0)
Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost/CI2413/mensaje.html
Cookie: _ga=GA1.1.1463916326.1438747674
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-length: 43
mensaje=Hola+Mundo&submit=Enviar+el+mensaje
17 de 19
mensaje.php
HTTP/1.1 200 OK
Date: Mon, 24 Aug 2015 05:16:32 GMT
Server: Apache/2.4.9 (Win64) mod_fcgid/2.3.9
X-Powered-By: PHP/5.3.28
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
X-Transfer-Encoding: chunked
Content-Type: text/html
X-ManualEdit: possibly modified
Content-length: 231
<!DOCTYPE html>
<html>
<head>
<title>Su mensaje</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
El mensaje que usted envió es: <em>Hola Mundo</em>.</body>
</html>
18 de 19
¡Gracias por su atención!
¿Preguntas?
Descargar