Saltar al contenido principal
Versión: v20 R4 BETA

Objeto servidor web

Un proyecto 4D puede iniciar y monitorear un servidor web para la aplicación principal (host) así como para cada componente alojado.

Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación:

  • un servidor web para la aplicación local,
  • un servidor web para el componente #1,
  • un servidor web para el componente #2.

Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D.

Cada servidor web 4D, incluido el servidor web de la aplicación principal, se expone como un objeto de la clase 4D.WebServer. Una vez instanciado, un objeto servidor web puede ser manejado desde la aplicación actual o desde cualquier componente utilizando un gran número de propiedades y funciones.

Los comandos WEB heredados del lenguaje 4D son soportados, pero no se puede seleccionar el servidor web al que se aplican (ver más abajo).

Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo:

  • las llamadas a los métodos base On Web Authentication y On Web Connection
  • el procesamiento de las etiquetas 4D y las llamadas de métodos,
  • sesiones web y gestión del protocolo TLS.

Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web.

Instanciar un objeto servidor web

El objeto servidor web de la aplicación local (servidor web por defecto) es cargado automáticamente por 4D en al inicio. Por lo tanto, si escribe en un proyecto recién creado:

$nbSrv:=WEB Server list.length   
//el valor de $nbSrv es 1

Para instanciar un objeto servidor web, llame al comando WEB Server:

    //crear una variable objeto de la clase 4D.WebServer
var webServer : 4D.WebServer
//llamar al servidor web desde el contexto actual
webServer:=WEB Server

//equivalente a
webServer:=WEB Server(Web server database)

Si la aplicación utiliza componentes y quiere llamar a:

  • el servidor web de la aplicación local a partir de un componente o
  • el servidor que ha recibido la solicitud (sin importar el servidor),

también se puede utilizar:

var webServer : 4D.WebServer 
//llamar al servidor web local desde un componente
webServer:=WEB Server(Web server host database)
//llamar al servidor web objetivo
webServer:=WEB Server(Web server receiving request)

Funciones del servidor web

Un objeto de clase Web srver contiene las siguientes funciones:

FuncionesParámetrosValor devueltoDescripción
start()settings (objet)status (objeto)Iniciar el servidor web
stop()--Detener el servidor Web

Para iniciar y detener un servidor web, basta con llamar a las funciones start() y stop() del objeto servidor web:

var $status : Object
//para iniciar un servidor web con los parámetros por defecto
$status:=webServer.start()
//para iniciar el servidor web con los parámetros personalizados
//$settings object contains web server properties
webServer.start($settings)

//para detener el servidor web
$status:=webServer.stop()

Propiedades del servidor web

Un objeto servidor web contiene varias propiedades que configuran el servidor web.

Estas propiedades son definidas:

  1. con la ayuda del parámetro settings de la función .start() (excepto en el caso de las propiedades de sólo lectura, ver más adelante),
  2. si no se utiliza, utilizando el comando WEB SET OPTION (sólo aplicaciones locales),
  3. si no se utiliza, en los parámetros de la aplicación local o del componente.
  • Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web.
  • Si el servidor web se inicia, las propiedades contienen los valores reales utilizados por el servidor web (la configuración por defecto puede haber sido reemplazada por el parámetro settings de la función .start().

isRunning, name, openSSLVersion y perfectForwardSecrecy son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto settings para la función start().

Alcance de los comandos 4D Web

El lenguaje 4D contiene varios comandos permitiendo controlar el servido Web. Sin embargo, estos comandos están diseñados para trabajar con un único servidor web (por defecto). Cuando utilice estos comandos en el contexto de los objetos servidor web, asegúrese de que su alcance es el adecuado.

ComandoAlcance
SET DATABASE PARAMETERAplicación local del servidor web
WEB CLOSE SESSIONServidor web que ha recibido la petición
WEB GET BODY PARTServidor web que ha recibido la petición
WEB Get body part countServidor web que ha recibido la petición
WEB Get Current Session IDServidor web que ha recibido la petición
WEB GET HTTP BODYServidor web que ha recibido la petición
WEB GET HTTP HEADERServidor web que ha recibido la petición
WEB GET OPTIONAplicación local del servidor web
WEB Get server infoAplicación local del servidor web
WEB GET SESSION EXPIRATIONServidor web que ha recibido la petición
WEB Get session process countServidor web que ha recibido la petición
WEB GET STATISTICSAplicación local del servidor web
WEB GET VARIABLESServidor web que ha recibido la petición
WEB Is secured connectionServidor web que ha recibido la petición
WEB Is server runningAplicación local del servidor web
WEB SEND BLOBServidor web que ha recibido la petición
WEB SEND FILEServidor web que ha recibido la petición
WEB SEND HTTP REDIRECTServidor web que ha recibido la petición
WEB SEND RAW DATAServidor web que ha recibido la petición
WEB SEND TEXTServidor web que ha recibido la petición
WEB SET HOME PAGEAplicación local del servidor web
WEB SET HTTP HEADERServidor web que ha recibido la petición
WEB SET OPTIONAplicación local del servidor web
WEB SET ROOT FOLDERAplicación local del servidor web
WEB START SERVERAplicación local del servidor web
WEB STOP SERVERAplicación local del servidor web
WEB Validate digestServidor web que ha recibido la petición