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…') |
|||
(2 revisiones intermedias por el mismo usuario no mostrado) | |||
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" | ||
* 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. | |
− | + | }} | |
− | |||
− | + | http://www.latinuxpress.com/books/drafts/web2py/_images/diagram1.png | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Última revisión de 06:50 19 nov 2013
|
http://www.latinuxpress.com/books/drafts/web2py/_images/diagram1.png