Download - Protocolo http

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 la informacin si hay varios servidores ejs. cluster, balance de carga. Soluciones:
        • Replicacin entre servidores
        • Comparticin: sockets, memoria, disco, BD
      • (Limitacin en el n de clientes)
    • En el lado del cliente: se usan cookies y criptografa. Inconvenientes:
      • Limitacin de tamao de cookie
      • Informacin del usuario no accesible fuera de la sesin

20. WebDAV

  • Web-based Distributed Authoring and Versioning
  • Extensiones al protocolo HTTP que permiten editar y gestionar ficheros en servidores web de forma colaborativa

21. Configuraciones en Firefox v2.0

  • En about:config parmetros network.http.*
    • accept-encoding (ej. gzip), accept.default (ej. text/xml)
    • default-socket-type
    • max-connections, max-connections-per-server
    • keep-alive, proxy.keep-alive, keep-alive.timeout,request.max-start-delay, max-persistent-connections-per-server, max-persistent-connections-per-proxy,
    • pipelining, proxy.pipelining,pipelining.maxrequests
    • redirection-limit
    • sendRefererHeader, sendSecureXSiteReferrer
    • use-cache
    • proxy.version, version

22. URI / URL / URN

  • URI: Uniform Resource Identifier
  • Sintaxis genrica de URIs: : [ ? ] [ # ]
    • ej. http, mailto
    • ej. //www.acme.com:8080/path/fichero;nombre=patxi

23. URI / URL / URN

  • URL/URN: Uniform Resource Locator/Name:
    • URL: dnde
    • URN: qu/quin
  • URL: URI que adems de identificar un recurso indica la forma de localizar el mismo.
    • Ej: http://www.acme.com/fichero.html
  • URN: URI que emplea el esquema urn.
    • Ej: urn:isbn:0-395-36341-1
  • URC: para incluir meta-informacin

24. Software Servidores web

  • Clasificaciones segn S.O., funcionalidades, requisitos (ej. tinyXXX, embeddedXXX).
  • Listados:
    • Ranking uso: Netcraft. Apache, Microsoft IIS, Google GWS, Lighttpd,...
      • http://news.netcraft.com
      • http://survey.netcraft.com/Reports/200801/
    • Paquetes de ubuntu: aolserver, apache, boa, cherokee, lighttpd, mini-httpd, roxen4,...
    • http://en.wikipedia.org/wiki/Comparison_of_web_servers
    • http://en.wikipedia.org/wiki/Comparison_of_lightweight_web_servers
  • Chequeo: http://toolbar.netcraft.com/site_report?url=...

25. Software - Navegadores

  • Grficos:
    • Firefox, IE, Safari, Opera, Netscape, Konqueror, Maxthon (gratis, no libre, slo Windows),...
    • Motores de renderizado: gecko (Firefox, Netscape), trident (IE, Maxthon), WebKit (Safari), Presto (Opera), khtml (Konqueror)
  • De texto: lynx
  • Curiosidades: spacetime, flock,...
  • Referencias:
    • http://en.wikipedia.org/wiki/List_of_web_browsers
    • http://en.wikipedia.org/wiki/Comparison_of_web_browsers
    • http://en.wikipedia.org/wiki/Usage_share_of_web_browsers
    • http://en.wikipedia.org/wiki/List_of_layout_engines

26. Licencia de Uso

    • http://creativecommons.org/licenses/by-sa/3.0/

Top Related