SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Protocolo HTTP




        Carlos E. Gómez   Abril/2011
Interacción entre cliente y
         servidor HTTP




BASHAM, B., SIERRA, K. y BATES, B.
Head First Servlets y JSP
                                     Carlos E. Gómez   Abril/2011
O'Reilly. 2008.
Interacción entre cliente y
         servidor HTTP




BASHAM, B., SIERRA, K. y BATES, B.
Head First Servlets y JSP
                                     Carlos E. Gómez   Abril/2011
O'Reilly. 2008.
El código HTML es parte del
mensaje de respuesta HTTP




        Carlos E. Gómez   Abril/2011
Método GET




       Carlos E. Gómez   Abril/2011
Método POST




       Carlos E. Gómez   Abril/2011
Terminología

•    Una página Web está es un conjunto de objetos.
•    Los objetos pueden serarchivos HTML, imágenes
     JPEG, applets de Java, archivos de audio, etc.
•    Una página Web consiste en un archivo base
     HTML el cual incluye referencias a varios objetos
•    Cada objeto es alcanzable por un URL. Ejemplo:

     grid.uniquindio.edu.co/proyecto437/informe.pdf

           host name                 path name
                 Carlos E. Gómez   Abril/2011
Generalidades de HTTP

¨    HTTP:
      hypertext transfer protocol.
•     Protocolo de la capa de aplicación.
•     Modelo cliente/servidor.
       •  Cliente: navegador que solicita,
          recibe y muestra los objetos
          web.
       •  Servidor: El servidor Web envía
          objetos en respuesta a las
          solicitudes.
•     HTTP 1.0: RFC 1945.
•     HTTP 1.1: RFC 2068, 2616.
                         Carlos E. Gómez     Abril/2011
Generalidades de HTTP
•    Usa TCP.
•    El cliente inicia la conexión (crea el socket) al
     servidor, en el puerto 80.
•    El servidor acepta la conexión TCP del cliente.
•    Intercambio de mensajes de la capa de aplicación
     entre el navegador (cliente HTTP) y el servidor Web
     (servidor HTTP).




                 Carlos E. Gómez   Abril/2011
Generalidades de HTTP
•    La conexión TCP se cierra al terminar la
     comunicación.
•    El servidor no mantiene información del estado
     acerca de las solicitudes anteriores del cliente.




                  Carlos E. Gómez   Abril/2011
Mensajes HTTP

•    Dos tipos de mensajes HTTP

      •    HTTP Request
      •    HTTP Response




                     Carlos E. Gómez   Abril/2011
HTTP Request Message




       Carlos E. Gómez   Abril/2011
HTTP Request Message




       Carlos E. Gómez   Abril/2011
Ejemplo Método GET




        Carlos E. Gómez   Abril/2011
Subiendo un formulario HTML

•    Método Post.
•    Usados frecuentemente en formularios de entrada en
     las páginas Web.
•    Las entradas son enviadas al servidor en el entity
     body.




                 Carlos E. Gómez   Abril/2011
HTTP Response Message




       Carlos E. Gómez   Abril/2011
HTTP Response Message




       Carlos E. Gómez   Abril/2011
Códigos de respuesta

¨    200 OK
      •    Solicitud exitosa, el objeto solicitado va después en este mensaje
301 Moved Permanently
      •    El objeto solicitado ha sido movido, la nueva ubicación será
           especificada después en este mensaje (Location:)
400 Bad Request
      •    El mensaje de solicitud no fue entendido por el servidor
404 Not Found
      •    El objeto solicitado no fue encontrado en este servidor
505 HTTP Version Not Supported
      •    La versión del protocolo HTTP no es soportada por este servidor



                        Carlos E. Gómez        Abril/2011
Tipos de conexiones en HTTP
¨  No persistentes
¨  Persistentes

      ¤  Sinpipelining
      ¤  Con pipelining




                     Carlos E. Gómez   Abril/2011
Conexiones no persistentes
¨  Máximo un objeto es enviado sobre una conexión
    TCP.
¨  Un nuevo objeto deberá ser solicitado dentro de

    otra conexión TCP.
¨  HTTP/1.0 usa conexiones no persistentes.




              Carlos E. Gómez   Abril/2011
Conexiones persistentes
Sin pipelining                    Con pipelining
¨  Múltiples objetos             ¨  Múltiples objetos
    pueden ser enviados               pueden ser enviados
    sobre la misma conexión           sobre la misma conexión
    TCP.                              TCP.
¨  El cliente solicita un        ¨  El cliente puede solicitar
    nuevo objeto después              un nuevo objeto antes
    de recibir el anterior.           de recibir el objeto
                                      anterior.
                                  ¨  Es el modo por defecto
                                      usado en HTTP/1.1.
                Carlos E. Gómez    Abril/2011
Análisis de desempeño de acuerdo al
 tipo de conexión
RTT
¨  Tiempo que tarda un paquete pequeño en ir del

    cliente al servidor y regresar al cliente.
¨  Ejemplo:

  ¤  Tiempo
           que se demora en enviar una solicitud de
    conexión TCP y recibir el acuse de recibo del servidor.


                                    RTT



                 Carlos E. Gómez   Abril/2011
Análisis de desempeño de acuerdo al
 tipo de conexión
Con conexiones no persistentes                           Estable
                                                                cimient
                                                                       o de la
                                                                               conex




                                      Objeto # 1
                                                                                     ión
¨  Se necesita un RTT para el                     RTT
                                                                       e recibo
                                                               Acuse d




                                                                                             Tiempo de transmisión
    establecimiento de la conexión                          Mensaj
                                                                  e de sol
                                                                          icitud H
    entre el cliente y el servidor                 RTT
                                                                                   TTP
                                                                                   TTP
                                                                          puesta H
    (para cada objeto).                                          e de res
                                                         Mensaj
                                                         Estable
                                                                cimient
¨  Existe una sobrecarga por la                                        o de la




                                      Objeto # 2
                                                                                 conexió
                                                                                         n
                                                   RTT
    cantidad de conexiones TCP                                    Acuse d
                                                                           e recibo

    que deben ser establecidas.                             Mensaj
                                                                   e de sol
                                                                            icitud H
                                                                                     TTP
¨  Se necesita un RTT + el tiempo                 RTT                        a HTTP
                                                                e de r espuest
                                                          Mensaj
    de transmisión para obtener
    cada objeto. Carlos E. Gómez     Abril/2011
Análisis de desempeño de acuerdo al
 tipo de conexión
Con conexiones no
    persistentes
¨  En total, 2 RTT por cada

    objeto + el tiempo de
    transmisión de cada objeto.
¨  Para n objetos, se necesitan
    2nRTT + tiempo de
    transmisión de los objetos


                 Carlos E. Gómez   Abril/2011
Análisis de desempeño de acuerdo al
 tipo de conexión
Con conexiones persistentes
¨  El servidor deja abierta la conexión después de

    enviar la respuesta.
¨  Los mensajes HTTP que se intercambien pueden ser

    enviados por la misma conexión.




               Carlos E. Gómez   Abril/2011
Análisis de desempeño de acuerdo al
 tipo de conexión
Con conexiones persistentes sin
    pipelining
¨  Los clientes envían una nueva solicitud
    solo cuando la respuesta a la petición
    anterior ha sido recibida.
¨  Se necesita un RTT para el
    establecimiento de la conexión + un
    RTT + el tiempo de transmisión para
    obtener cada objeto.
¨  En total, 1 RTT + 1 RTT por cada
    objeto + el tiempo de transmisión de
    cada uno.
¨  Para n objetos, se necesitan nRTT + 1
    + tiempo de transmisión de los objetos

                     Carlos E. Gómez          Abril/2011
Análisis de desempeño de acuerdo al
 tipo de conexión
Con conexiones persistentes con
    pipelining
¨  Se necesita un RTT para el
    establecimiento de la conexión
    entre el cliente y el servidor, una
    sola vez.
¨  El cliente envía mensajes de
    solicitud HTTP tan pronto como
    encuentra objetos referenciados.
¨  Se necesita un solo RTT para
    todos los objetos referenciados.
¨  Es difícil establecer el tiempo
    pero es notoriamente inferior
    frente a no usar pipelining.
                    Carlos E. Gómez       Abril/2011
HTTP no guarda el estado
•    HTTP es “stateless”.
•    El servidor genera una respuesta y olvida tanto la
     solicitud como el cliente, es decir, no guarda
     ninguna información acerca de las solicitudes
     anteriores de los clientes.
•    Esta característica contribuyó con la escalabilidad
     de la Web, sin embargo se convirtió en un
     problema para ciertas aplicaciones.



                 Carlos E. Gómez   Abril/2011
HTTP no guarda el estado
•    Un sitio de compras necesita seguir la pista de los
     objetos que un usuario ha puesto en el carrito de
     compras virtual.
•    También podría estar interesado en saber si un
     cliente ha visitado el sitio antes para adecuar el
     contenido que será presentado.
•    Mantener el estado de la información de todos los
     clientes, sería inmanejable lo que afecta la
     escalabilidad.


                 Carlos E. Gómez   Abril/2011
Cookies
•    Las cookies son una forma de manejar la
     información del estado de los clientes.
•    Una cookie es una pequeña cantidad de
     información de estado que un servidor Web envía
     a un cliente Web para que la almacene y la envíe
     en futuras solicitudes.
•    Cuando un cliente contacta por primera vez a un
     servidor que tiene habilitadas las cookies, la
     respuesta del servidor contiene una línea de
     encabezado Set-Cookie, con un valor para la
     cookie.

                 Carlos E. Gómez   Abril/2011
Cookies
•    El valor de la cookie es una cadena arbitraria
     seleccionada por el servidor.
•    Los clientes no interpretan la cookie, simplemente la
     almacenan en el disco local.
•    En las solicitudes posteriores al mismo servidor
     Web, el cliente incluye la línea de encabezado
     Cookie con el valor respectivo.
•    Por ejemplo, un servidor puede tener un
     identificador por cada cliente y almacenarlo en
     una cookie.
                  Carlos E. Gómez   Abril/2011
Cookies
•    Entonces el identificador podría servir como llave
     en una base de datos en la cual se almacena
     información del cliente.
•    El identificador puede ser enviado como valor de
     la cookie.
•    De este modo, el servidor puede reconocer al
     cliente y presentar información de acuerdo con el
     usuario en particular.



                 Carlos E. Gómez   Abril/2011
Cookies
•    Un servidor podría almacenar información de
     cuáles páginas Web han sido visitadas por un
     cliente durante la sesión actual.
•    Este mecanismo fue introducido por Netscape en
     1994 y posteriormente fue estandarizado y
     formalizado su uso en el RFC 2965.
•    Las cookies representan un simple pero poderoso
     mecanismo para mantener el estado de múltiples
     solicitudes HTTP.


                 Carlos E. Gómez   Abril/2011
Cookies
•    Las cookies también han sido usadas para hacer
     seguimiento al comportamiento de los usuarios
     afectando de alguna forma su privacidad.
•    Las cookies por sí solas no pueden actuar de forma
     maliciosa sobre el computador del usuario, no
     acceden al disco ni pueden expandir virus.
•    Las cookies pueden ser usadas para aprender
     acerca del comportamiento de los usuarios al
     navegar en la Web.


                 Carlos E. Gómez   Abril/2011
Cookies
•    Las cookies, por otra parte, son transmitidas por la
     red en texto claro, por lo que podrían presentar un
     problema de seguridad.
•    En algunos casos, los usuarios deshabilitan la
     recepción de cookies en el navegador, haciendo
     imposible a los sitios Web usa este mecanismo.
•    Este hecho debe ser considerado al momento de
     desarrollar los sitios Web.



                 Carlos E. Gómez   Abril/2011
Cookies




          Carlos E. Gómez   Abril/2011
Carlos E. Gómez   Abril/2011
Servidor Proxy Cache
•    Es un intermediario entre los clientes y el acceso a
     Internet.
•    Se utiliza con el fin de mejorar la sensación del
     usuario acerca de la velocidad de descarga de
     objetos Web.
•    El navegador debe ser configurado para pasar por
     el servidor proxy cuando hace cada solicitud.
•    La configuración del navegador permite
     excepciones, para que no todas las peticiones sean
     enviadas al servidor proxy.
Servidor Proxy Cache
Servidor Proxy Cache
¨  El servidor proxy usualmente mantiene un caché que
    ayuda a reducir el tráfico hacia Internet.
¨  Cuando un navegador solicita un objeto que se

    encuentra en el caché, lo obtiene mucho más rápido
    que si lo tiene que buscar en el servidor de origen.
¨  El servidor proxy más usado en la actualidad es
    Squid.
Servidor Proxy Cache
¨  Usualmente el servidor proxy caché es instalado en
    una red corporativa como una empresa o una
    universidad.
¨  Los proveedores de acceso a Internet también
    configuran un servidor proxy para atender a los
    usuarios.
¨  Es posible tener un proxy transparente que no sea
    necesario configurar en los computadores de los
    usuarios. El caso más común, el del servidor proxy
    del proveedor de acceso a Internet.
Servidor proxy caché




        Carlos E. Gómez   Abril/2011
Servidor proxy caché
•     Suposiciones:
     •    Tamaño promedio de los objetos: 1.000.000 bits.
     •    Cantidad promedio de solicitudes en la institución: 20/seg.
     •    Delay desde el router institucional a cualquier servidor origen y
          regresar al enrutador: 2 seg.
•     Consecuencias:
     •    Utilización del la LAN: 20%.
     •    Utilización del enlace de acceso:100%.
     •    El delay total es difícil de calcular porque en el enlace de
          acceso a la red institucional se presenta un cuello de botella.




                      Carlos E. Gómez      Abril/2011
Posible solución
  Incrementar el ancho de banda del acceso, por ejemplo
  a 100 Mbps.




              Carlos E. Gómez   Abril/2011
Posible solución
•     Consecuencias:
     •    Utilización de la LAN: 20%.
     •    Utilización del enlace: 20%.
     •    El delay total mejora porque ya hay posibilidad de usar
          el canal de acceso a Internet, pero cada objeto se
          demora 2 segundos más el delay de acceso más el delay
          de la LAN.
     •    Es una costosa actualización que no presenta una mejora
          significativa.




                    Carlos E. Gómez   Abril/2011
Otra posible solución
  Instalar servidor proxy caché. Suponga un hit rate de 0.4.




               Carlos E. Gómez    Abril/2011
Otra posible solución

•     Consecuencias:
     •    40% de las solicitudes serán satisfechas casi
          inmediatamente.
     •    60% solicitudes serán satisfechas por los servidores de
          origen.
     •    La utilización del enlace de acceso es reducido a un
          60%, resultando delays insignificantes del orden de
          milisegundos.
     •    Delay total promedio = Delay Internet + DelayAcceso
          + DelayLAN = 0.6*2 seg + 0.4*0
     •    Delay total promedio ≈ 1,2 seg



                    Carlos E. Gómez    Abril/2011
Solicitudes condicionales
•    Es un mensaje que envía el servidor proxy caché al
     servidor de origen con el fin de validar si la copia
     del objeto solicitado por el cliente es una versión
     actualizada del objeto.
•    El servidor proxy caché especifica la fecha de
     almacenamiento de la copia en el mensaje HTTP
     request enviado al servidor de origen.



                 Carlos E. Gómez   Abril/2011
Solicitudes condicionales
•    Utiliza la línea de encabezado
     If-modified-since: <date> en el mensaje HTTP
     request.
•    El servidor de origen solo envía el objeto en la
     respuesta si la copia que está almacenada en el
     servidor proxy caché está desactualizada.




                Carlos E. Gómez   Abril/2011
Solicitudes condicionales
•    El servidor de origen utiliza la línea de
     encabezado HTTP/1.0 304 Not Modified en el
     mensaje HTTP response para indicar que el objeto
     no será enviado porque no ha sido modificado.
•    El servidor de origen utiliza la línea de
     encabezado HTTP/1.0 200 OK en el mensaje
     HTTP response para indicar que el objeto ha
     cambiado y que a continuación del mensaje el
     objeto será enviado.

                Carlos E. Gómez   Abril/2011

Más contenido relacionado

Último

Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Demetrio Ccesa Rayme
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
candy torres
 
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdfLas Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Demetrio Ccesa Rayme
 

Último (20)

Programa dia de las madres para la convi
Programa dia de las madres para la conviPrograma dia de las madres para la convi
Programa dia de las madres para la convi
 
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxMINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
 
Educacion Basada en Evidencias SM5 Ccesa007.pdf
Educacion Basada en Evidencias  SM5  Ccesa007.pdfEducacion Basada en Evidencias  SM5  Ccesa007.pdf
Educacion Basada en Evidencias SM5 Ccesa007.pdf
 
10-08 Avances tecnológicos del siglo XXI.pdf
10-08 Avances tecnológicos del siglo XXI.pdf10-08 Avances tecnológicos del siglo XXI.pdf
10-08 Avances tecnológicos del siglo XXI.pdf
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
Lineamientos de la Escuela de la Confianza  SJA  Ccesa.pptxLineamientos de la Escuela de la Confianza  SJA  Ccesa.pptx
Lineamientos de la Escuela de la Confianza SJA Ccesa.pptx
 
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxUNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de NavarraSanta Criz de Eslava, la más monumental de las ciudades romanas de Navarra
Santa Criz de Eslava, la más monumental de las ciudades romanas de Navarra
 
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptxAEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
AEC2. Egipto Antiguo. Adivina, Adivinanza.pptx
 
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdfEFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
EFEMERIDES DEL MES DE MAYO PERIODICO MURAL.pdf
 
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
El liderazgo en la empresa sostenible, introducción, definición y ejemplo.
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
2° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdfLas Preguntas Educativas entran a las Aulas CIAESA  Ccesa007.pdf
Las Preguntas Educativas entran a las Aulas CIAESA Ccesa007.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdfTÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
 

Destacado

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Http 2011 1

  • 1. Protocolo HTTP Carlos E. Gómez Abril/2011
  • 2. Interacción entre cliente y servidor HTTP BASHAM, B., SIERRA, K. y BATES, B. Head First Servlets y JSP Carlos E. Gómez Abril/2011 O'Reilly. 2008.
  • 3. Interacción entre cliente y servidor HTTP BASHAM, B., SIERRA, K. y BATES, B. Head First Servlets y JSP Carlos E. Gómez Abril/2011 O'Reilly. 2008.
  • 4. El código HTML es parte del mensaje de respuesta HTTP Carlos E. Gómez Abril/2011
  • 5. Método GET Carlos E. Gómez Abril/2011
  • 6. Método POST Carlos E. Gómez Abril/2011
  • 7. Terminología •  Una página Web está es un conjunto de objetos. •  Los objetos pueden serarchivos HTML, imágenes JPEG, applets de Java, archivos de audio, etc. •  Una página Web consiste en un archivo base HTML el cual incluye referencias a varios objetos •  Cada objeto es alcanzable por un URL. Ejemplo: grid.uniquindio.edu.co/proyecto437/informe.pdf host name path name Carlos E. Gómez Abril/2011
  • 8. Generalidades de HTTP ¨  HTTP: hypertext transfer protocol. •  Protocolo de la capa de aplicación. •  Modelo cliente/servidor. •  Cliente: navegador que solicita, recibe y muestra los objetos web. •  Servidor: El servidor Web envía objetos en respuesta a las solicitudes. •  HTTP 1.0: RFC 1945. •  HTTP 1.1: RFC 2068, 2616. Carlos E. Gómez Abril/2011
  • 9. Generalidades de HTTP •  Usa TCP. •  El cliente inicia la conexión (crea el socket) al servidor, en el puerto 80. •  El servidor acepta la conexión TCP del cliente. •  Intercambio de mensajes de la capa de aplicación entre el navegador (cliente HTTP) y el servidor Web (servidor HTTP). Carlos E. Gómez Abril/2011
  • 10. Generalidades de HTTP •  La conexión TCP se cierra al terminar la comunicación. •  El servidor no mantiene información del estado acerca de las solicitudes anteriores del cliente. Carlos E. Gómez Abril/2011
  • 11. Mensajes HTTP •  Dos tipos de mensajes HTTP •  HTTP Request •  HTTP Response Carlos E. Gómez Abril/2011
  • 12. HTTP Request Message Carlos E. Gómez Abril/2011
  • 13. HTTP Request Message Carlos E. Gómez Abril/2011
  • 14. Ejemplo Método GET Carlos E. Gómez Abril/2011
  • 15. Subiendo un formulario HTML •  Método Post. •  Usados frecuentemente en formularios de entrada en las páginas Web. •  Las entradas son enviadas al servidor en el entity body. Carlos E. Gómez Abril/2011
  • 16. HTTP Response Message Carlos E. Gómez Abril/2011
  • 17. HTTP Response Message Carlos E. Gómez Abril/2011
  • 18. Códigos de respuesta ¨  200 OK •  Solicitud exitosa, el objeto solicitado va después en este mensaje 301 Moved Permanently •  El objeto solicitado ha sido movido, la nueva ubicación será especificada después en este mensaje (Location:) 400 Bad Request •  El mensaje de solicitud no fue entendido por el servidor 404 Not Found •  El objeto solicitado no fue encontrado en este servidor 505 HTTP Version Not Supported •  La versión del protocolo HTTP no es soportada por este servidor Carlos E. Gómez Abril/2011
  • 19. Tipos de conexiones en HTTP ¨  No persistentes ¨  Persistentes ¤  Sinpipelining ¤  Con pipelining Carlos E. Gómez Abril/2011
  • 20. Conexiones no persistentes ¨  Máximo un objeto es enviado sobre una conexión TCP. ¨  Un nuevo objeto deberá ser solicitado dentro de otra conexión TCP. ¨  HTTP/1.0 usa conexiones no persistentes. Carlos E. Gómez Abril/2011
  • 21. Conexiones persistentes Sin pipelining Con pipelining ¨  Múltiples objetos ¨  Múltiples objetos pueden ser enviados pueden ser enviados sobre la misma conexión sobre la misma conexión TCP. TCP. ¨  El cliente solicita un ¨  El cliente puede solicitar nuevo objeto después un nuevo objeto antes de recibir el anterior. de recibir el objeto anterior. ¨  Es el modo por defecto usado en HTTP/1.1. Carlos E. Gómez Abril/2011
  • 22. Análisis de desempeño de acuerdo al tipo de conexión RTT ¨  Tiempo que tarda un paquete pequeño en ir del cliente al servidor y regresar al cliente. ¨  Ejemplo: ¤  Tiempo que se demora en enviar una solicitud de conexión TCP y recibir el acuse de recibo del servidor. RTT Carlos E. Gómez Abril/2011
  • 23. Análisis de desempeño de acuerdo al tipo de conexión Con conexiones no persistentes Estable cimient o de la conex Objeto # 1 ión ¨  Se necesita un RTT para el RTT e recibo Acuse d Tiempo de transmisión establecimiento de la conexión Mensaj e de sol icitud H entre el cliente y el servidor RTT TTP TTP puesta H (para cada objeto). e de res Mensaj Estable cimient ¨  Existe una sobrecarga por la o de la Objeto # 2 conexió n RTT cantidad de conexiones TCP Acuse d e recibo que deben ser establecidas. Mensaj e de sol icitud H TTP ¨  Se necesita un RTT + el tiempo RTT a HTTP e de r espuest Mensaj de transmisión para obtener cada objeto. Carlos E. Gómez Abril/2011
  • 24. Análisis de desempeño de acuerdo al tipo de conexión Con conexiones no persistentes ¨  En total, 2 RTT por cada objeto + el tiempo de transmisión de cada objeto. ¨  Para n objetos, se necesitan 2nRTT + tiempo de transmisión de los objetos Carlos E. Gómez Abril/2011
  • 25. Análisis de desempeño de acuerdo al tipo de conexión Con conexiones persistentes ¨  El servidor deja abierta la conexión después de enviar la respuesta. ¨  Los mensajes HTTP que se intercambien pueden ser enviados por la misma conexión. Carlos E. Gómez Abril/2011
  • 26. Análisis de desempeño de acuerdo al tipo de conexión Con conexiones persistentes sin pipelining ¨  Los clientes envían una nueva solicitud solo cuando la respuesta a la petición anterior ha sido recibida. ¨  Se necesita un RTT para el establecimiento de la conexión + un RTT + el tiempo de transmisión para obtener cada objeto. ¨  En total, 1 RTT + 1 RTT por cada objeto + el tiempo de transmisión de cada uno. ¨  Para n objetos, se necesitan nRTT + 1 + tiempo de transmisión de los objetos Carlos E. Gómez Abril/2011
  • 27. Análisis de desempeño de acuerdo al tipo de conexión Con conexiones persistentes con pipelining ¨  Se necesita un RTT para el establecimiento de la conexión entre el cliente y el servidor, una sola vez. ¨  El cliente envía mensajes de solicitud HTTP tan pronto como encuentra objetos referenciados. ¨  Se necesita un solo RTT para todos los objetos referenciados. ¨  Es difícil establecer el tiempo pero es notoriamente inferior frente a no usar pipelining. Carlos E. Gómez Abril/2011
  • 28. HTTP no guarda el estado •  HTTP es “stateless”. •  El servidor genera una respuesta y olvida tanto la solicitud como el cliente, es decir, no guarda ninguna información acerca de las solicitudes anteriores de los clientes. •  Esta característica contribuyó con la escalabilidad de la Web, sin embargo se convirtió en un problema para ciertas aplicaciones. Carlos E. Gómez Abril/2011
  • 29. HTTP no guarda el estado •  Un sitio de compras necesita seguir la pista de los objetos que un usuario ha puesto en el carrito de compras virtual. •  También podría estar interesado en saber si un cliente ha visitado el sitio antes para adecuar el contenido que será presentado. •  Mantener el estado de la información de todos los clientes, sería inmanejable lo que afecta la escalabilidad. Carlos E. Gómez Abril/2011
  • 30. Cookies •  Las cookies son una forma de manejar la información del estado de los clientes. •  Una cookie es una pequeña cantidad de información de estado que un servidor Web envía a un cliente Web para que la almacene y la envíe en futuras solicitudes. •  Cuando un cliente contacta por primera vez a un servidor que tiene habilitadas las cookies, la respuesta del servidor contiene una línea de encabezado Set-Cookie, con un valor para la cookie. Carlos E. Gómez Abril/2011
  • 31. Cookies •  El valor de la cookie es una cadena arbitraria seleccionada por el servidor. •  Los clientes no interpretan la cookie, simplemente la almacenan en el disco local. •  En las solicitudes posteriores al mismo servidor Web, el cliente incluye la línea de encabezado Cookie con el valor respectivo. •  Por ejemplo, un servidor puede tener un identificador por cada cliente y almacenarlo en una cookie. Carlos E. Gómez Abril/2011
  • 32. Cookies •  Entonces el identificador podría servir como llave en una base de datos en la cual se almacena información del cliente. •  El identificador puede ser enviado como valor de la cookie. •  De este modo, el servidor puede reconocer al cliente y presentar información de acuerdo con el usuario en particular. Carlos E. Gómez Abril/2011
  • 33. Cookies •  Un servidor podría almacenar información de cuáles páginas Web han sido visitadas por un cliente durante la sesión actual. •  Este mecanismo fue introducido por Netscape en 1994 y posteriormente fue estandarizado y formalizado su uso en el RFC 2965. •  Las cookies representan un simple pero poderoso mecanismo para mantener el estado de múltiples solicitudes HTTP. Carlos E. Gómez Abril/2011
  • 34. Cookies •  Las cookies también han sido usadas para hacer seguimiento al comportamiento de los usuarios afectando de alguna forma su privacidad. •  Las cookies por sí solas no pueden actuar de forma maliciosa sobre el computador del usuario, no acceden al disco ni pueden expandir virus. •  Las cookies pueden ser usadas para aprender acerca del comportamiento de los usuarios al navegar en la Web. Carlos E. Gómez Abril/2011
  • 35. Cookies •  Las cookies, por otra parte, son transmitidas por la red en texto claro, por lo que podrían presentar un problema de seguridad. •  En algunos casos, los usuarios deshabilitan la recepción de cookies en el navegador, haciendo imposible a los sitios Web usa este mecanismo. •  Este hecho debe ser considerado al momento de desarrollar los sitios Web. Carlos E. Gómez Abril/2011
  • 36. Cookies Carlos E. Gómez Abril/2011
  • 37. Carlos E. Gómez Abril/2011
  • 38. Servidor Proxy Cache •  Es un intermediario entre los clientes y el acceso a Internet. •  Se utiliza con el fin de mejorar la sensación del usuario acerca de la velocidad de descarga de objetos Web. •  El navegador debe ser configurado para pasar por el servidor proxy cuando hace cada solicitud. •  La configuración del navegador permite excepciones, para que no todas las peticiones sean enviadas al servidor proxy.
  • 40. Servidor Proxy Cache ¨  El servidor proxy usualmente mantiene un caché que ayuda a reducir el tráfico hacia Internet. ¨  Cuando un navegador solicita un objeto que se encuentra en el caché, lo obtiene mucho más rápido que si lo tiene que buscar en el servidor de origen. ¨  El servidor proxy más usado en la actualidad es Squid.
  • 41. Servidor Proxy Cache ¨  Usualmente el servidor proxy caché es instalado en una red corporativa como una empresa o una universidad. ¨  Los proveedores de acceso a Internet también configuran un servidor proxy para atender a los usuarios. ¨  Es posible tener un proxy transparente que no sea necesario configurar en los computadores de los usuarios. El caso más común, el del servidor proxy del proveedor de acceso a Internet.
  • 42. Servidor proxy caché Carlos E. Gómez Abril/2011
  • 43. Servidor proxy caché •  Suposiciones: •  Tamaño promedio de los objetos: 1.000.000 bits. •  Cantidad promedio de solicitudes en la institución: 20/seg. •  Delay desde el router institucional a cualquier servidor origen y regresar al enrutador: 2 seg. •  Consecuencias: •  Utilización del la LAN: 20%. •  Utilización del enlace de acceso:100%. •  El delay total es difícil de calcular porque en el enlace de acceso a la red institucional se presenta un cuello de botella. Carlos E. Gómez Abril/2011
  • 44. Posible solución Incrementar el ancho de banda del acceso, por ejemplo a 100 Mbps. Carlos E. Gómez Abril/2011
  • 45. Posible solución •  Consecuencias: •  Utilización de la LAN: 20%. •  Utilización del enlace: 20%. •  El delay total mejora porque ya hay posibilidad de usar el canal de acceso a Internet, pero cada objeto se demora 2 segundos más el delay de acceso más el delay de la LAN. •  Es una costosa actualización que no presenta una mejora significativa. Carlos E. Gómez Abril/2011
  • 46. Otra posible solución Instalar servidor proxy caché. Suponga un hit rate de 0.4. Carlos E. Gómez Abril/2011
  • 47. Otra posible solución •  Consecuencias: •  40% de las solicitudes serán satisfechas casi inmediatamente. •  60% solicitudes serán satisfechas por los servidores de origen. •  La utilización del enlace de acceso es reducido a un 60%, resultando delays insignificantes del orden de milisegundos. •  Delay total promedio = Delay Internet + DelayAcceso + DelayLAN = 0.6*2 seg + 0.4*0 •  Delay total promedio ≈ 1,2 seg Carlos E. Gómez Abril/2011
  • 48. Solicitudes condicionales •  Es un mensaje que envía el servidor proxy caché al servidor de origen con el fin de validar si la copia del objeto solicitado por el cliente es una versión actualizada del objeto. •  El servidor proxy caché especifica la fecha de almacenamiento de la copia en el mensaje HTTP request enviado al servidor de origen. Carlos E. Gómez Abril/2011
  • 49. Solicitudes condicionales •  Utiliza la línea de encabezado If-modified-since: <date> en el mensaje HTTP request. •  El servidor de origen solo envía el objeto en la respuesta si la copia que está almacenada en el servidor proxy caché está desactualizada. Carlos E. Gómez Abril/2011
  • 50. Solicitudes condicionales •  El servidor de origen utiliza la línea de encabezado HTTP/1.0 304 Not Modified en el mensaje HTTP response para indicar que el objeto no será enviado porque no ha sido modificado. •  El servidor de origen utiliza la línea de encabezado HTTP/1.0 200 OK en el mensaje HTTP response para indicar que el objeto ha cambiado y que a continuación del mensaje el objeto será enviado. Carlos E. Gómez Abril/2011