Diferencia entre revisiones de «Usuario:Lmorillas/desarrollo web servidor/web2py/flujo»
De WikiEducator
(Página creada con '{{MiTitulo|Flujo de 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…') |
|||
Línea 5: | Línea 5: | ||
* 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. | * 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. | * 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. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Revisión de 18:29 2 oct 2012
- 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.