Diferencia entre revisiones de «Usuario:Lmorillas/desarrollo web servidor/web2py/flujo»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
{{MiTitulo|Flujo de Web2py}}
 
{{MiTitulo|Flujo de Web2py}}
  
 +
{{Conocimiento previo|Title=Flujo de una petición a web2py|
 
* LLega una petición HTTP al servidor web. El servidor procesa cada servidor en su propio hilo en paralelo
 
* LLega una petición HTTP al servidor web. El servidor procesa cada servidor en su propio hilo en paralelo
 
* Se procesa la cabecera HTTP y se pasa al "dispatcher"  
 
* Se procesa la cabecera HTTP y se pasa al "dispatcher"  
Línea 14: Línea 15:
 
* Si la acción devuelve un objeto iterable, se recorre y se envían los datos al cliente
 
* Si la acción devuelve un objeto iterable, se recorre y se envían los datos al cliente
 
* Si devuelve un diccionario, trata de localizar la vista que formatea el diccionario. La vista tiene que tener el mismo nombre que la acción y la misma extensión que la página solicitada (por defecto .html) Si no, web2py usa unan vista genérica.
 
* Si devuelve un diccionario, trata de localizar la vista que formatea el diccionario. La vista tiene que tener el mismo nombre que la acción y la misma extensión que la página solicitada (por defecto .html) Si no, web2py usa unan vista genérica.
 +
}}

Revisión de 18:45 2 oct 2012



Icon preknowledge.gif

Flujo de una petición a web2py

  • LLega una petición HTTP al servidor web. El servidor procesa cada servidor en su propio hilo en paralelo
  • Se procesa la cabecera HTTP y se pasa al "dispatcher"
  • El "dispatcher" decide qué aplicación tiene que manejar la petición y analiza el PATH_INFO de la URL en la llamada a una función. Cada URL corresponde a una llamada a una función.
  • Las peticiones de fichero de la carpeta static se maenjan directamente. Los ficheros grandes se envía directamente por streaming al cliente.
  • El resto de peticiones se mapean a una acción (función en un fichero de controlador) en la aplicación solicitada.
  • Antes de llamar a la función:
    • Si el encabezado de la petición tiene una cookie de sesión para la app, se recupera el objeto sesión,
    • Si no, se crea un id de sesión.
    • Se crea un entorno de ejecución para la petición. Los modelos se ejecutarán en este entorno.
  • Finalmente la acción del controlador se ejecuta en este entorno.
  • Si la acción devuelve una cadena, ésta se devuelve al cliente (los HTML helpsers de web2py se serializan y devuelven al cliente también)
  • Si la acción devuelve un objeto iterable, se recorre y se envían los datos al cliente
  • Si devuelve un diccionario, trata de localizar la vista que formatea el diccionario. La vista tiene que tener el mismo nombre que la acción y la misma extensión que la página solicitada (por defecto .html) Si no, web2py usa unan vista genérica.