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&oacute; es: <em>Hola Mundo</em>.</body> </html> 18 de 19 ¡Gracias por su atención! ¿Preguntas?