1 Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso Programación Web Tema 1: Protocolo HTTP Miguel Ángel Manso Emerson Castañeda ETSI en Topografía, Geodesia y Cartografía - UPM Basado en CS – 328 (Dick Steflik) Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso HTTP • HyperText Transport Protocol • Lenguaje de la Web – Protocolo usado para comunicar clientes y servidores • Protocolo orientado a conexión (TCP) y el puerto por defecto es (80) • RFC 1945
12
Embed
Bases de datos espaciales Tema 0: Presentaciónpdi.topografia.upm.es/m.manso/docencia/PW2012/1.3... · 2014. 11. 18. · Title: Bases de datos espaciales Tema 0: Presentación Author:
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Programación Web Tema 1: Protocolo HTTP
Miguel Ángel Manso Emerson Castañeda
ETSI en Topografía, Geodesia y Cartografía - UPM
Basado en CS – 328 (Dick Steflik)
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
HTTP
• HyperText Transport Protocol
• Lenguaje de la Web
– Protocolo usado para comunicar clientes y servidores
• Protocolo orientado a conexión (TCP) y el puerto por defecto es (80)
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
¿En qué consiste el protocolo?
• Conexión.- establecimiento de una conexión cliente-servidor. Usualmente puerto por defecto (80) aunque pueden usarse otros no reservados
• Solicitud.- envío por parte del cliente de un mensaje de solicitud al servidor (GET, POST, HEAD, ..)
• Respuesta.- envío por parte del servidor de una respuesta al cliente
• Cierre.- fin de la conexión por parte del cliente y el servidor
HTTP es un protocolo sin estado es decir que no guarda
ninguna información sobre conexiones anteriores
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
HTTP - URLs
• URL
– Uniform Resource Locator
• protocol (http, ftp, news)
• host name (name.domain name)
• port (usually 80)
• directory path to the resource
• resource name
– http://www.myplace.com/www/index.html
– http://www.myplace.com:80/cgi-bin/t.exe
3
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
HTTP - methods • Los métodos que ofrece el protocolo son: Get,
Post, Head, Put, Delete, Options, Trace, Connect – GET (http://xx/pp/serv?par1=val1&par2=val2)
• Recupera un recurso de un servidor – Petición de página web sencilla
– Ejecutar un programa CGI
– Ejecutar un CGI con parámetros en la URL
– POST • Método preferido para procesar formularios
• También para ejecutar programas CGI
• Método para parametrizar la entrada del sistema (SysIn)
• Más seguro y privado
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
HTTP - methods
– HEAD
• Pide el estado de la URLs (sólo las cabeceras)
• Se utiliza para gestionar las URL condicionales y poder manejar esquemas que mejoran el funcionamiento (used for conditional URL handling for performance enhancement schemes) – Obtiene el recurso de la URL si no existe una copia local o si
ésta es muy antigua respecto a los datos del servidor
4
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Paquetes de consulta en HTTP
• Se trata de cabeceras del protocolo HTTP – las cabeceras están ocultas en los visores de
páginas web
– contienen: • content type / mime type (tipo: contenido codificación)
• content length (longitud)
• user agent - browser issuing request (tipo de cliente)
• content types user agent can handle (tipos de contenidos que el cliente puede manejar)
• y la URL
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
• Preceden a las peticiones HTTP
• Las cabeceras finalizan con un salto de línea
• Campos de la cabecera:
– From -- Accept
– Accept-Encoding -- Accept Language
– Referer -- Authorization
– Charge-To -- If-Modified-Since
– Pragma
Paquetes de consulta en HTTP
5
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
From:
• In internet mail format, the requesting user
• Does not have to correspond to requesting host name (might be a proxy)
• should be a valid e-mail address
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Accept: (permite establecer negociación)
• Lista de esquemas que acepta el cliente – <field> = Accept: <entry> * [,<entry>]
– <entry> = <content type> *[;<param>]
– <param> = <attr> = <float>
– <attr> = q / mxs / mxb
– <float> = <ANSI-C floating point > – Accept: text/html
– Accept: audio/basic q-1
– if no Accept is found; plain/text is assumed
– Puede usar caracteres comodín (*)
6
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Accept-Encoding
• Similar a Accept, para las codificaciones
• Ejemplo:
– Accept-Encoding: x-compress;x-zip
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
User-Agent
• Producto software usado por el cliente • <field> = User-Agent: <product> • <product> = <word> [/<version>] • <version> = <word> • Ejemplos:
– User-Agent: IBM WebExplorer DLL /v960311 – Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Referer
• Para que los servidores sepan de qué página procede la petición URL
• Esto permite que los servidores realicen auditoría en relación al lugar del que han obtenido el link de acceso actual, poder analizar enlaces rotos, etc.
• Ejemplo
– Referer: http:/www.w3.com/xxx.html
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Authorization:
• Para esquemas de autentificación con contraseñas
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Charge-To:
• Información relativa a quien se ha de realizar el cargo (cobro) por una operación
• Depende del sistema de cargos/cobros
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Pragma:
• Equivalente en formato a accept
• Destinado para servidores
• Los proxy deben de ser transparentes, aunque lo usan
• Solo el pragma currently indica que no es cacheable; los proxy deben obtener el recurso desde el servidor y no desde la cache
9
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Modified-Since:
• Usado con el método GET para realizar peticiones condicionadas a una fecha de modificación
• Si el recurso no ha sido modificado desde la fecha especificada, el servidor retorna una cabecera con el código 304 en vez de retornar el recurso – En éstos casos el cliente puede mostrar la versión
cacheada
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Cabecera de Estado (Status Header)
• Código que retorna el servidor
• “HTTP/1.0 sp code”
• Códigos:
– 1xx - reserved for future use
– 2xx - successful, understood and accepted
– 3xx - further action needed to complete
– 4xx - bad syntax in client request
– 5xx - server can’t fulfill good request
10
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Ejemplo de petición
GET / HTTP/1.1 • Host: www.24x7linux.com • User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Códigos de Estado
• 100 Continua • 101 Cambio de protocolo • 200 OK • 201 Creado • 202 Aceptado • 203 Información no oficial • 204 Sin Contenido • 205 Contenido para reset • 206 Contenido parcial • 300 Múltiples posibilidades • 301 Mudado permanentemente • 302 Encontrado • 303 Vea otros • 304 No modificado • 305 Utilice un proxy • 307 Redirección temporal • 400 Solicitud incorrecta • 401 No autorizado • 402 Pago requerido • 403 Prohibido
• 404 No encontrado • 405 Método no permitido • 406 No aceptable • 407 Proxy requerido • 408 Tiempo de espera agotado • 409 Conflicto • 410 No mapas disponible • 411 Requiere longitud • 412 Falló precondición • 413 Entidad de solicitud demasiado larga • 414 URI de solicitud demasiado largo • 415 Tipo de medio no soportado • 416 Rango solicitado no disponible • 417 Falló expectativa • 500 Error interno • 501 No implementado • 502 Pasarela incorrecta • 503 Servicio no disponible • 504 Tiempo de espera de la pasarela agotado • 505 Versión de HTTP no soportada
Universidad Politécnica de Madrid Emerson Castañeda/Miguel Ángel Manso
Herramienta para ejercitar: • addons http resource test para Firefox