- 1. Dani Gutirrez Porset [email_address]
2. ndice
- Mensajes. Mtodos de peticin. Cdigos de estado
- Configuraciones en Firefox v2.0
- Software: servidores y navegadores
3. Introduccin
- Hypertext Transfer Protocol
- Versiones: 0.9, 1.0, 1.1 (la ms usada), 1.2
4. Introduccin
-
- Cliente=user agent: web browser, spider, wget, curl,...
-
- Intermediarios: Proxy, gateway, tnel
5. Mensajes
-
- Lneas de cabecera de peticin (de tipo XXX:YYY)
-
- Lneas de cabecera de respuesta (de tipo XXX:YYY)
- Todas las lneas acaban en
6. Mensaje de peticin
-
- 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
-
- 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
- HEAD: solicita una respuesta idntica a GET pero slo devuelve
las cabeceras (no el cuerpo).
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
-
- Date: Thu, 27 Mar 2008 21:29:14 GMT
-
- Content-Type: text/html; charset=US-ASCII
-
- 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.
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/*
-
-
- 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
- Chunked transfer encoding(v1.1): dividir todo el contenido en
fragmentos y enviarlos.
-
-
- Transmisin streamed en lugar de buffered: Posibilidad de ir
enviando contenidos desde el servidor antes de conocer el tamao
total del fichero.
-
- 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.
-
-
- 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
-
-
- 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.
-
- 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
-
- 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,...
-
- Identificador de sesin a incluir en el trfico http
-
- Variables de sesin: pueden guardarse en ficheros de disco o ej.
en base de datos
- 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)
-
- 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
-
- sendRefererHeader, sendSecureXSiteReferrer
22. URI / URL / URN
- URI: Uniform Resource Identifier
- Sintaxis genrica de URIs: : [ ? ] [ # ]
-
- ej. //www.acme.com:8080/path/fichero;nombre=patxi
23. URI / URL / URN
- URL/URN: Uniform Resource Locator/Name:
- 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).
-
- Ranking uso: Netcraft. Apache, Microsoft IIS, Google GWS,
Lighttpd,...
-
-
- 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
-
- 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)
- Curiosidades: spacetime, flock,...
-
- 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/