protocolo http

Download Protocolo http

Post on 24-Jun-2015

6.466 views

Category:

Technology

0 download

Embed Size (px)

TRANSCRIPT

  • 1. Dani Gutirrez Porset [email_address]
      • protocolo http

2. ndice

  • Introduccin
  • Mensajes. Mtodos de peticin. Cdigos de estado
  • Caractersticas
  • Seguridad
  • Gestin de sesiones
  • WebDAV
  • Configuraciones en Firefox v2.0
  • URI / URL / URN
  • Software: servidores y navegadores
  • Licencia de uso

3. Introduccin

  • Hypertext Transfer Protocol
  • Desde 1994
  • RFC 2616
  • Sobre TCP.
  • Puertos por defecto:
    • No seguro: tcp 80
    • Seguro (ssl/tls): 443
  • Versiones: 0.9, 1.0, 1.1 (la ms usada), 1.2
  • Protocolo stateless

4. Introduccin

  • Elementos:
    • Cliente=user agent: web browser, spider, wget, curl,...
    • Servidor
    • Intermediarios: Proxy, gateway, tnel

5. Mensajes

  • Mensaje de peticin:
    • Lnea de mtodo de peticin
    • Lneas de cabecera de peticin (de tipo XXX:YYY)
    • (Lnea en blanco)
    • Cuerpo (opcional)
  • Mensaje de respuesta:
    • Lnea de cdigo de estado
    • Lneas de cabecera de respuesta (de tipo XXX:YYY)
    • (Lnea en blanco)
    • Cuerpo (opcional)
  • Todas las lneas acaban en

6. Mensaje de peticin

  • Ej:
    • GET / HTTP/1.1
    • Host:
    • User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080207 Ubuntu/7.10 (gutsy) Firefox/2.0.0.12 Paros/3.2.13
    • Accept: text/xml,text/plain;q=0.8,image/png,*/*;q=0.5
    • Accept-Language: es-es,en-us;q=0.7,en;q=0.3
    • Accept-Charset: UTF-8,*
  • Otras lneas de cabecera:
    • Keep-Alive, Proxy-Connection, Referer, Cookie, Content-length,...
    • Ref:http://en.wikipedia.org/wiki/List_of_HTTP_headers

7. Mtodos de peticin

  • GET: solicita una peticin dentro de la URL.
  • POST: enva datos en el cuerpo de la peticin
  • PUT: upload
  • HEAD: solicita una respuesta idntica a GET pero slo devuelve las cabeceras (no el cuerpo).
  • DELETE: borrado

8. Mtodos de peticin

  • TRACE: devuelve la peticin, para comprobar si algn equipo intermedio modifica la original
  • OPTIONS: devuelve los mtodos soportados por el servidor
  • CONNECT: empleado para tneles tcp/ip, tpicamente para hacer conexiones https a travs de un proxy http. Riesgo si en el proxy no se limitan los posibles destinos host:port

9. Mensaje de respuesta

  • Ej:
    • HTTP/1.1 200 OK
    • Date: Thu, 27 Mar 2008 21:29:14 GMT
    • Content-Type: text/html; charset=US-ASCII
    • Server: AmazonS3
  • Otras lneas de cabecera:
    • ETag, Expires, Pragma, Vary, X-*
    • Ref:http://en.wikipedia.org/wiki/List_of_HTTP_headers

10. Cdigos de estado

  • Son los cdigos devueltos por el servidor.
  • Se agrupan en:
    • 1xx Informacin
    • 2xx xito
    • 3xx Redireccin
    • 4xx Error de cliente
    • 5xx Error de servidor

11. Caractersticas

  • Negociacin de contenidos : mecanismo para devolver distintos recursos o documentos a partir de una URI solicitada. Ejs: Tipo imagen (gif, png), Idioma, text/html o text/*
    • Cabeceras:
      • De cliente. Ej.Accept-encoding: gzip, deflate
      • De servidor. Ej:Content-encoding: gzip
    • Tipos MIME (Multipurpose Internet Mail Extensions):
      • Forma de describir el tipo de documento a transmitir.
      • Sintaxis: major type/minor type. Ej: text/html, image/gif
      • Basados en extensin o en anlisis (file ...)

12. Caractersticas

  • Compresin.
  • Chunked transfer encoding(v1.1): dividir todo el contenido en fragmentos y enviarlos.
    • Ventajas:
      • Transmisin streamed en lugar de buffered: Posibilidad de ir enviando contenidos desde el servidor antes de conocer el tamao total del fichero.
      • Compresin
    • Cabecera del servidor: Transfer-encoding: chunked
  • Byte serving(v1.1): enviar slo la parte del fichero que el cliente indique.

13. Caractersticas

  • Conexiones persistentes(HTTP keep-alive)(v1.1): hacer varias conexiones http con una sla conexin tcp.
    • Ventajas:
      • Menor carga de sistema operativo
      • Menos congestin en la red (menos conexiones tcp) y menor latencia en solicitudes posteriores.
      • Posibilidad de http pipelining
    • Segn rfc2616 un cliente no debera establecer ms de 2 conexiones persistentes al mismo tiempo con un servidor, para evitar la congestin.

14. Caractersticas

  • HTTP pipelining(v1.1): peticiones asncronas: enviar ms de una peticin http sin esperar las respuestas.
    • Ventaja: como se pueden enviar varias peticiones en un nico paquete tcp, es posible reducir la carga de red.

15. Caractersticas

    • Cundo puede usarse:
      • Slo en conexiones keep-alive. En la primera conexin (an no se sabe si el servidor soporta v1.1).
      • No en POST (es una solicitud no idempotente)
    • Cuntas conexiones pipeline abrir:
      • Si se abren muchas y se cierra la conexin, se pierden y hay que volver a enviarlas.
      • Si las primeras peticiones tardan, produce sensacin de lentitud

16. Seguridad

  • Mtodos de autenticacin propios de http:
    • Basic access: invlido por ir no encriptado
    • Digest: basado en md5 con salt.
      • Considera usuario, password y realm (dominio o espacio).
      • Vulnerable a ataque man-in-the-middle.
  • Otros mtodos:
    • URI https = http sobre ssl/tls. El mejor
    • Cabecera http 1.1 Upgrade header. Apenas empleado
    • s-http (Secure hypertext transfer protocol). Apenas empleado

17. Gestin de sesiones

  • Protocolo stateless: no guarda informacin sobre los clientes
  • Tcnicas para mantener la historia:
    • Cookies (rfc 2109). Inconveniente: han de habilitarse en el browser
    • URL rewriting (Ej.http://host/path;sessionid=12axY ) Inconvenientes:
      • Todas las URLs han de llevar el id. Por tanto, hay que generar todas las pginas de forma dinmica
      • Los bookmarks no valen
      • (URLs poco estticas)
    • Campos ocultos en formularios. Inviable a nivel general: no todo est en formularios

18. Gestin de sesiones

  • Se suelen encapsular a ms alto nivel:
    • APIs de php, java servlets,...
    • Aplicacin
  • Cada sesin incluye:
    • Identificador de sesin a incluir en el trfico http
    • Variables de sesin: pueden guardarse en ficheros de disco o ej. en base de datos
    • Timeout
  • Implicaciones de seguridad: secuestro de sesin, ej. con URL rewriting

19. Gestin de sesiones

  • Alternativas de almacenamiento de informacin de sesiones:
    • En el lado del servidor. Inconvenientes:
      • Acceso a

Recommended

View more >