INTERNET Todos lo usamos… 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 http://conecti.ca/wp-content/uploads/2010/08/image58.png Un poco de historia: http://conecti.ca/wp-content/uploads/2010/08/image58.png http://dailyinfographic.com/wp-content/uploads/2013/01/history-of-the-internet.jpg
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
DNS http://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
Sitio Web http://alfredovela.files.wordpress.com/2011/10/queesunsitiowebycomofunciona.png
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”:
HTTP REQUEST: GET /doc1.html HTTP/1.1 Accept: www/source Accept: text/html Accept: image/gif User-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.
HTTP RESPONSE: HTTP/1.0 200 OK Date: Friday, 23-Feb-01 16:30:00 GMT Server: Apache/1.1.1 Content-type: text/html Content-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, 401, 403, 301, 302, 500. Hay muchos, estos son los mas importantes.
HTTP 200: OK 301: Moved Permanently 302: Found 401: Authentication Required 403: Forbidden 404: Not Found 500: Server Error
HTTP - GET El 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 - POST El 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 POST GET POST Back / Reload Sin problemas Los datos se re-envían. Se le avisa al usuario Marcadores (Bookmarks) Se puede No se puede Cache 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.