## Cómo funciona
Cuando se ha configurado el servidor Web para procesar solicitudes HTTP de recursos con extensión .dkl; a través de los mecanismos disponibles; se invoca al intérprete de Devkron (devkron.exe en Windows) con la ruta y nombre del archivo dkl requerido y se le proporciona toda la información del contexto HTTP en una variable global denominada:
```DKL
@http_context
```
El siguiente programa (ejecutado como una página Web) muestra en formato JSON todo el contenido de @http_context.
```DKL
#include "dkli.dkh"
#$
html
{
##
#include "serialize.dkh"
##
body
{
p{$"#<to.json(@http_context)>"}
}
}
```
Para probar el ejemplo, asegúrese de haber instalado y configurado los servicios de su servidor Web (IIS por ejemplo), cree un sitio Web y guarde en la carpeta correspondiente el programa como index.dkl
<img src="img/index-dkl.png"/>
Tras darle formato con alguna utilidad "pretty-json" se puede apreciar mejor:
<img src="img/@http_context-in-json.png"/>
## La estructura @http_context
La variable global de referencia a una estructura @http_context contiene dos miembros principales: request y response.
### Información de la solicitud
El campo request contiene los siguientes miembros:
#### headers
Es una referencia a una estructura que contiene todos los encabezados HTTP de la solicitud.
#### cookies
Es una referencia a una estructura que contiene todas las cookies de la solicitud HTTP.
#### get
Es una referencia a una estructura que contiene todos los parámetros pasados en la cadena de la URL después del delimitador ? (comando GET de HTTP)
#### post
Es una referencia a una estructura que contiene todos los parámetros pasados mediante una solicitud POST codificada como application/x-www-form-urlencoded
Si el cuerpo de la solicitud POST no está codificada como se espera, el miembro no existe o está vacío.
#### post_string
Es una cadena que contiene el contenido del cuerpo de la solicitud POST si no está codificado como multipart/form-data
#### files
Es una referencia a una estructura que contiene todos los archivos enviados mediante POST codificados como multipart/form-data
### Control de la respuesta
El campo response de @http_context permite al programador definir los encabezados de respuesta, el formato y el origen de la misma.
#### headers
El campo headers del miembro response contiene los encabezados de respuesta.
De manera predeterminada, se incluyen los siguientes:
* Content-Type: text/html;charset=utf-8
* X-Powered-By: Devkron
#### output
El miembro output de response es una cadena que indica el origen de la salida y puede ser alguno de los siguientes:
* standard – Es el valor predeterminado e indica que el contenido de la respuesta será la salida del procesamiento del programa Devkron (un árbol XML)
* text – Establece que la salida será la cadena de texto indicada en el miembro text de response
* binary – Indica que la salida será un flujo de bytes referenciados por el miembro binary de reponse.
#### text
Este miembro contiene la cadena usada como contenido de la respuesta si se ha establecido 'text' como valor para output.
#### binary
Este miembro contiene una referencia a un array de bytes usado como la respuesta si se ha establecido 'binary' como valor para output.