Summary

Este documento proporciona un repaso de la web y HTTP, cubriendo conceptos fundamentales como el funcionamiento básico de una página web, HTML, URIs, URLs y los principales métodos HTTP. Se incluyen ejemplos y códigos de estado HTTP.

Full Transcript

# Conceptos Avanzados de Internet ## Aplicaciones y Servicios en Internet ### Repaso de la Web y HTTP ## La Web: Funcionamiento básico - Una página web se compone de recursos: - Imágenes, audio, video, etc. - Un documento HTML (HyperText Markup Language) que contiene texto e indica como mo...

# Conceptos Avanzados de Internet ## Aplicaciones y Servicios en Internet ### Repaso de la Web y HTTP ## La Web: Funcionamiento básico - Una página web se compone de recursos: - Imágenes, audio, video, etc. - Un documento HTML (HyperText Markup Language) que contiene texto e indica como mostrar los demás recursos - Contiene hiperenlaces a otras páginas ### Acceso a una página Web: - Se accede al documento HTML - A partir del HTML se determina el resto de recursos que utiliza - Uno por uno se descargan los recursos del servidor según los recursos están disponibles se van visualizando ## La Web: HTML ### Ejemplo página web (texto con imagen): - Tags HTML (etiquetas): Dicen como interpretar el contenido: `<etiqueta> Contenido </etiqueta>` - **index.html:** ```html <title>Imagen con texto</title> <html> Esto es texto <img src="logo.gif"> <A href="http://www.upct.es"> Esto es un enlace </A> </html> ``` - **logo.gif** ## URIs y URLs - Los recursos se identifican mediante URIs (Uniform Resource Identifiers), concretamente mediante URLs (Uniform Resource Locators) - URL = Subconjunto de URI ### Las URLs son un subtipo de URIs. Se componen de: - Protocolo de acceso al recurso (HTTP, FTP, etc.) - Localización del recurso (www.upct.es, 192.168.1.16) - Ruta del recurso (/index.html, /images/logo.gif) ### Ejemplos: - http://www.upct.es/index.html - http://www.upct.es/images/logo.gif - ftp://192.168.1.16/ejemplo.txt (acceso FTP) ## Query Strings y Fragment identifiers (en URIs, URLs) - Opcionalmente las URLs pueden contener Query Strings y Fragment identifiers: ### Query Strings o parámetros - Contienen información adicional para el software que se ejecuta en el servidor - http://www.ejemplo.com/empleados?nombre=Juan&localidad=Cartagena ### Fragment identifiers - Especifican o apuntan a una parte del recurso - www.ejemplo.com/faqs#pregunta2 ## HTTP - Protocolo HTTP 1.1(Hyper Text Transfer Protocol), RFC 2616 (RFC obsoleto en 2014), RFCs 7230-7235: ### Acceso a los recursos del servidor a través del puerto 80 TCP - Se basa en mensajes de petición y mensajes de respuesta ### Petición del cliente de acceso a un recurso. - Primera línea: método + URI + versión HTTP - GET. Solicita descargar un recurso - HEAD. Solicita información sobre un recurso (sólo cabeceras) - POST. Envío de datos hacia el servidor* - PUT. Solicita cargar un recurso en el servidor - DELETE. Permite borrar un recurso del servidor - OPTIONS. Devuelve los métodos HTTP que se pueden utilizar con un recurso ### Cabeceras - Especifican información adicional sobre la transacción que se va a llevar a cabo ### Cuerpo - Datos que se mandan al otro extremo (con PUT y POST) ### Respuesta del servidor - Línea de estado: Versión de HTTP + Código + Texto - Encabezado de respuesta: cabeceras - Cuerpo (separado del encabezado por línea en blanco) ## HTTP: Ejemplo ### Ejemplo de descarga de página web con HTTP: - **Cliente:** ``` GET /index.html HTTP/1.1 Host: www.example.com User-Agent: MSIE Accept: text/html [Línea en blanco] ``` - **Servidor:** ``` HTTP/1.1 200 OK Date: Wed, 23 Oct 2013 16:20:00 Content-Type: text/html Content-Length: 118 <title>Imagen con texto</title> <html> <font size=5> <img src="logo.gif" align=top> Esto es el texto </font> </html> ``` - **Cliente:** ``` GET /logo.gif HTTP/1.1 Host: www.example.com User-Agent: MSIE [Línea en blanco] ``` - **Servidor:** ``` HTTP/1.1 200 OK Date: Wed, 1 Jun 2011 18:11:30 GMT Content-Type: image/gif Content-Length: 3371 Imagen ``` ## HTTP: Códigos de estado (respuestas) - Códigos de 3 dígitos enviados por el servidor para hacer saber al cliente el estado de su petición - Destinados a ser interpretados por el navegador (máquina), acompañados por un mensaje para los usuarios - HTTP/1.1 200 OK - HTTP/1.1 404 Not Found - **1xx:** Petición en proceso - **2xx:** Petición aceptada y procesada correctamente - **3xx:** Redirección (p. ej. página que ha cambiado su URL) - **4xx:** Error del cliente - **5xx:** Error del servidor ## HTTP: Principales métodos - **GET:** Descarga un recurso (representación de un recurso) de una web (Sin datos(cuerpo)) - **PUT:** Crea o modifica (si ya exsite) un recurso de una Web (Cuerpo (Imagen): 09 16 E5) - **DELETE:** Añadir información subordinada a un recurso existente (Cabeceras...) - **POST:** Método más indefinido, Se puede usar para: - Subir mensajes a un tablón (p.ej. de anuncios), extender una base de datos, etc. - Enviar un bloque de datos, como el resultado de enviar un formulario, a un proceso para ser atendido por un proceso del servidor ### Uso más extendido de POST en la web - Otros. Si algo no se puede hacer con el resto de métodos, tal vez se pueda con POST, Determinado por el servidor (según cómo esté programado). En el caso de servicios web, estará especificado en la documentación del servicio ## HTTP: Principales cabeceras (para este curso) ### Enviadas en peticiones (cliente): - **Accept:** Indica los tipos de datos (Internet media types) que puede aceptar en la respuesta la petición - Accept: text/html - Accept: application/json, application/xml - **If-Modified-Since:** Envía el recurso sólo si ha cambiado desde cierta fecha. Si no, el cliente utiliza el recurso almacenado en caché - If-Modified-Since: Mon, 21 Oct 2013 12:09:05 GMT ### Enviadas en peticiones o respuestas: - **Content-Type:** Tipo de datos enviado en el cuerpo del mensaje. El servidor la usa al responder a un GET. El cliente lo usa en PUT y POST. - Content-Type: application/json - **Cache-Control:** Determina si el recurso puede almacenarse en caché o no y de que manera (directivas para todas las máquinas que pueden almacenar en cache entre cliente y servidor). - Cache-Control: public, max-age=3600 ### Enviadas en respuestas: - **Location:** Si se crea o modifica otro recurso distinto del recurso al que se manda la petición se indica su URI en esta cabecera. También para redirecciones a otros recursos.

Use Quizgecko on...
Browser
Browser