Saltar para o conteúdo principal
Versão: 19

Objeto Web Server

Um projeto 4D pode iniciar e monitorar um servidor web para a aplicação (host) principal, bem como para cada componente hospedado.

Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação:

  • um servidor web para a aplicação local,
  • um servidor Web para o componente #1,
  • um servidor Web para o componente #2.

Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D.

Cada servidor web 4D, incluindo o servidor web da aplicação principal, é exposto como um objeto específico da classe 4D. WebServer. Uma vez instanciado, um objeto de servidor da Web pode ser gerenciado a partir da aplicação atual ou de qualquer componente usando um grande número de propriedades e funções.

Os comandos WEB herdados da linguagem 4D são compatíveis, mas não é possível selecionar o servidor Web ao qual eles se aplicam (veja abaixo).

Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo:

  • as chamadas os métodos banco de dados On Web Authentication e On Web Connection
  • o processamento das etiquetas 4D e das chamadas de métodos,
  • sessões Web e gestão do protocolo TLS.

Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web.

Instanciar um objeto servidor Web

O objeto servidor web da aplicação host (servidor web padrão) é carregado automaticamente pelo 4D ao iniciar. Assim, se escrever num projeto recém-criado:

$nbSrv:=WEB Server list.length   
//$nbSrv valor é 1

Para instanciar um objeto servidor web, chame o comando WEB Server:

    //create an object variable of the 4D. WebServer class
var webServer : 4D. WebServer
//call the web server from the current context
webServer:=WEB Server

//equivalent to
webServer:=WEB Server(Web server database)

Se a aplicação utilizar componentes e o usuário pretender chamar:

  • o servidor Web da aplicação host a partir de um componente ou
  • o servidor que recebeu o pedido (qualquer que seja o servidor),

também pode ser utilizado:

var webServer : 4D. WebServer 
//call the host web server from a component
webServer:=WEB Server(Web server host database)
//call the target web server
webServer:=WEB Server(Web server receiving request)

Funções do servidor Web

Um objeto de classe web server contém as seguintes funções:

FunçõesParâmetroValor retornadoDescrição
start()settings (objet)status (objecto)Inicia o servidor web
stop()--Pára o servidor Web

Para iniciar e interromper um servidor web, apenas chame as funções start() e stop() do objeto servidor web:

var $status : Object
//para iniciar um servidor web com os parâmetros padrão
$status:=webServer.start()
//para iniciar o servidor web com configurações personalizadas
// O objeto$settings contém propriedades do servidor Web
webServer.start($settings)

//para parar o servidor da web
$status:=webServer.stop()

Propriedades do servidor web

Um objeto de servidor web contém várias propriedades que configuram o servidor web.

Estas propriedades são definidas:

  1. usando o parâmetro settings da função .start() (exceto as propriedades somente leitura, veja abaixo),
  2. se não for usado, usando o comando WEB SET OPTION (apenas aplicações host),
  3. se não for usado, nos parâmetros da aplicação host ou do componente.
  • Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web.
  • Se o servidor web for iniciado, as propriedades contêm os valores reais usados pelo servidor web (configurações padrão poderiam ter sido substituídas pelo parâmetro settings da função .start().

isRunning, name, openSSLVersion e perfectForwardSecrecy são propriedades somente de leitura que não podem ser predefinidas no parâmetro objetosettings para a função start().

Âmbito dos comandos 4D Web

A linguagem 4D contém vários comandos que podem ser usados para controlar o servidor Web. No entanto, esses comandos são projetados para funcionar com um único servidor web (padrão). Ao usar esses comandos no contexto de objetos do servidor web, certifique-se de que seu escopo é apropriado.

ComandoÂmbito
SET DATABASE PARAMETERAplicação local de servidor Web
WEB CLOSE SESSIONServidor Web que recebeu o pedido
WEB GET BODY PARTServidor Web que recebeu o pedido
WEB Get body part countServidor Web que recebeu o pedido
WEB Get Current Session IDServidor Web que recebeu o pedido
WEB GET HTTP BODYServidor Web que recebeu o pedido
WEB GET HTTP HEADERServidor Web que recebeu o pedido
WEB GET OPTIONAplicação local de servidor Web
WEB Get server infoAplicação local de servidor Web
WEB GET SESSION EXPIRATIONServidor Web que recebeu o pedido
WEB Get session process countServidor Web que recebeu o pedido
WEB GET STATISTICSAplicação local de servidor Web
WEB GET VARIABLESServidor Web que recebeu o pedido
WEB Is secured connectionServidor Web que recebeu o pedido
WEB Is server runningAplicação local de servidor Web
WEB SEND BLOBServidor Web que recebeu o pedido
WEB SEND FILEServidor Web que recebeu o pedido
WEB SEND HTTP REDIRECTServidor Web que recebeu o pedido
WEB SEND RAW DATAServidor Web que recebeu o pedido
WEB SEND TEXTServidor Web que recebeu o pedido
WEB SET HOME PAGEAplicação local de servidor Web
WEB SET HTTP HEADERServidor Web que recebeu o pedido
WEB SET OPTIONAplicação local de servidor Web
WEB SET ROOT FOLDERAplicação local de servidor Web
WEB START SERVERAplicação local de servidor Web
WEB STOP SERVERAplicação local de servidor Web
WEB Validate digestServidor Web que recebeu o pedido