INTERNET Todos lo usamos pero… alguien sabe como funciona? ¬¬

Post on 22-Jan-2015

5 views 1 download

transcript

INTERNETTodos lo usamos pero… alguien sabe como funciona? ¬¬

Introducción

• La idea de la materia es aprender a programar sitios web.

• Para lograr eso, primero hay que entender algunos conceptos teóricos, algunos mas simples, otros mas complejos.

Introducción

• En la primer clase, vamos a ver como se creo internet y que pasa por dentro con conceptos como “Arquitectura cliente servidor” o “DNS”.

• En la segunda clase, vamos a ver cosas mas puntuales respecto a sitios web, como funcionan HTTP, HTML, los pedidos a un servidos y PHP.

• Luego de eso, vamos a meter mano en el código y vamos a tratar de amasar nuestro propio sitio web, al que le vamos a ir incorporando herramientas y conocimientos durante en año.

Internet

• Arquitectura cliente servidor• DNS: Domain Name Server• WWW: World Wide Web• HTTP: Hyper Text Transfer Protocol• HTML: Hyper Text Markup Language

Internet

¿Cómo funciona Internet?

• Parte 1: http://www.youtube.com/watch?v=91oBskMrGcc

• Parte 2: http://www.youtube.com/watch?v=YeT2LqD1HpE

Cliente - Servidor

Cliente - Servidor

Cliente - Servidor

DNS

DNShttp://www.youtube.com/watch?v=dIGxJCqLJlY

URI (URL + URN)

• URI (Uniform Resource Identifier): Cadena de caracteres utilizada para identificar inequívocamente un nombre o recurso, típicamente en una red utilizando protocolos específicos– URN (Uniform Resource Name)– URL (Uniform Resource Locator)

URI (URL + URN)

URL: Creada por Tim Berners-Lee en 1994• Consiste de:

– Nombre de schema o protocolo (ej.: http, https, ftp, etc.)– Nombre de dominio o dirección IP– Número de puerto (opcional, si no se especifica se utilizará el puerto por

defecto que para HTTP: 80)– El nombre del recurso o el programa pedido (y toda la ruta necesaria)– La cadena de consulta (opcional)– Identificador de fragmento (opcional)Formato: scheme://domain:port/path?query_string#fragment_id

• Algunos schemes permiten enviar usuario y contraseña a través de la URL (ej.: FTP)

ftp://user:pass@domain:port/path?query_string#fragment_id

Sitio Web

HTTP• La idea fundamental de los navegadores, es que muestren

documentos escritos en HTML que han obtenido de un servidor Web.

• Estos documentos HTML habitualmente presentan información de forma estática, sin más posibilidad de interacción con ellos.

• El modo de crear los documentos HTML ha variado a lo largo de la corta vida de las tecnologías Web pasando desde las primeras páginas escritas en HTML almacenadas en un archivo en el servidor Web, hasta aquellas que se generan en tiempo de ejecución como respuesta a una acción del cliente y cuyo contenido varía según las circunstancias.

HTTP• Es un protocolo de intercambio de información. Actualmente

estamos en la versión 1.1 (tercera versión).• Al contactar al servidor, el protocolo HTTP envía y recibe

información utilizando lo que llamamos “Headers”:

HTTPREQUEST:GET /doc1.html HTTP/1.1 Accept: www/sourceAccept: text/htmlAccept: image/gifUser-Agent: Mozilla/4.0 From: 200.45.124.200

• La primer línea de un REQUEST indica el método a ejecutar: GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS, CONNECT.

HTTPRESPONSE:HTTP/1.0 200 OKDate: Friday, 23-Feb-01 16:30:00 GMTServer: Apache/1.1.1Content-type: text/htmlContent-length: 230<HTML><HEAD><TITLE> ........ </HTML>

La primer línea del RESPONSE (además de indicarnos la versión del protocolo) nos indica el estado de la petición. Reconocerán un par de estos números, por haber navegado por Internet: 200, 404, 403, 301, 302, 500. Hay muchos, estos son los mas importantes.

HTTP200: OK301: Moved Permanently302: Found403: Forbidden404: Not Found500: Server Error

HTTP - GETEl pedido al servidor se hace utilizando la URL:

/test/demo_form.php?name1=value1&name2=value2

• La URL tiene un límite de caracteres. Alrededor de 2000, por lo tanto hay que tener cuidado con lo que enviamos. Ejemplo: No enviar archivos o textos gigantes.

• Por otro lado, los datos en la URL van en texto plano, por lo tanto no hay que mandar, por ejemplo, contraseñas.

HTTP - POSTEl pedido se envía encodeado en el header del request al servidor.Así, no tenemos limitación de tamaño, ni de formatos. Podemos enviar archivos, textos largos.Las contraseñas también “viajan” en texto plano, pero no están “taaaaaaaaaaaaaaaan” accesibles.

HTTP – GET vs POSTGET POST

Back / Reload Sin problemas Los datos se re-envían. Se le avisa al usuario

Marcadores (Bookmarks) Se puede No se puede

Cache Se puede No se puede

Encodeo application/x-www-form-urlencoded

application/x-www-form-urlencoded o multipart/form-data

Historial Los parámetros quedan en el historial

Los parametros no se guardan en el navegador

Longitud de datos 2048 caracteres No tiene restricción

Tipos de datos Caracteres ASCII No hay restricción. ASCII y Binario

Seguridad Los datos se ven en la URL Los datos no se ven en la URL, ni se almacenan en el historial.