Saltar para o conteúdo principal
Versão: 20 R8 BETA

WebServer

The WebServer class API allows you to start and monitor a web server for the main (host) application as well as each hosted component (see the Web Server object overview). Essa classe está disponível no "class store" de 4D.

Objeto Web Server

Os objetos servidor Web são instanciados com o comando WEB Server.

Eles oferecem as propriedades abaixo e funções:

Resumo

.accessKeyDefined : Boolean
true se uma chave de acesso estiver definida nas configurações do servidor Web
.certificateFolder : Text
pasta onde os arquivos de certificados estão localizados
.characterSet : Number
.characterSet : Text

character set that the 4D Web Server should use to communicate with browsers connecting to the application
.cipherSuite : Text
.CORSEnabled : Boolean
estado do serviço CORS (Cross-origin resource sharing) para o servidor
.CORSSettings : Collection
list of allowed hosts and methods for the CORS service
.debugLog : Integer
status of the HTTP request log file
.defaultHomepage : Text
nome da página inicial padrão
.HSTSEnabled : Boolean
estado do HTTP Strict Transport Security (HSTS)
.HSTSMaxAge : Integer
tempo máximo (em segundos) que HSTS está ativo para cada nova conexão cliente
.HTTPCompressionLevel : Integer
compression level for all compressed HTTP exchanges for the 4D HTTP server (client requests or server replies)
.HTTPCompressionThreshold : Integer
size threshold (bytes) for requests below which exchanges should not be compressed
.HTTPEnabled : Boolean
HTTP
.HTTPPort : Integer
número da porta IP de escuta para HTTP
.HTTPTrace : Boolean
ativação de HTTP TRACE
.HTTPSEnabled : Boolean
estado do protocolo HTTPS
.HTTPSPort : Integer
número da porta IP de escuta para HTTPS
.inactiveProcessTimeout : Integer
duração da vida (em minutos) dos processos de sessão legados inativos
.inactiveSessionTimeout : Integer
life duration (in minutes) of inactive legacy sessions (duration set in cookie)
.IPAddressToListen : Text
Endereço IP no qual o Servidor Web 4D receberá solicitações HTTP
.isRunning : Boolean
estado de execução do servidor web
.keepSession : Boolean
True if legacy sessions are enabled in the web server, False otherwise
.logRecording : Integer
modo de registro do log das solicitações (logweb.txt).
  • 0 = Não registrar (padrão)

  • 1 = Guardar no formato CLF

  • 2 = Guardar no formato DLF

  • 3 = Guardar no formato ELF

  • 4 = Guardar no formato WLF

                                         |

| .maxConcurrentProcesses : Integer
número máximo de processos web simultâneos suportados pelo servidor | | .maxRequestSize : Integer
maximum size (in bytes) of incoming HTTP requests (POST) that the web server is allowed to process | | .maxSessions : Integer
número máximo de sessões legacy simultâneas | | .minTLSVersion : Integer
versão mínima de TLS aceita para as conexões | | .name : Text
| | .openSSLVersion : Text
versão da biblioteca OpenSSL usada | | .perfectForwardSecrecy : Boolean
| | .rootFolder : Text
caminho da pasta raiz do servidor web | | .scalableSession : Boolean
True if scalable sessions are used in the web server, and False otherwise | | .sessionCookieDomain : Text
"domain" do cookie de sessão | | .IPAddressToListen : Text
Endereço IP no qual o Servidor Web 4D receberá solicitações HTTP | | .sessionCookiePath : Text
campo "path" do cookie de sessão | | .sessionCookieSameSite : Text
valor "SameSite" do cookie de sessão. Possíveis valores (usando constantes):

ParâmetrosValorDescrição
Web SameSite Strict"Strict"Valor por defeito - Os cookies só são enviados num contexto de primeira parte
Web SameSite Lax"Lax"Os cookies também são enviados em pedidos cruzados mas apenas quando um utilizador está a navegar para o sítio de origem (isto é, quando segue um link).
Web SameSite None"None"Os cookies são enviados em todos os contextos, ou seja, em resposta a pedidos tanto de primeira parte como de origem cruzada.

Veja a descrição do cookie da sessão SameSite para informações detalhadas.

            |

| .sessionIPAddressValidation : Boolean
validação de endereço IP para cookies de sessão | | .start() : Object
.start( settings : Object ) : Object

starts the web server on which it is applied | | .stop()
interrompe o servidor web no qual ele é aplicado |

.accessKeyDefined

.accessKeyDefined : Boolean

A propriedade .accessKeyDefined contém true se uma chave de acesso estiver definida nas configurações do servidor Web. Esta propriedade é usada pelo servidor web WebAdmin para validar a configuração de segurança da interface de administração.

.certificateFolder

.certificateFolder : Text

Caminho do pasta onde os arquivos de certificados estão localizados. O caminho está formatado no caminho completo POSIX usando sistemas de arquivos. Ao usar essa propriedade no parâmetro settings da função .start(), ela pode ser um objeto Folder.

.characterSet

.characterSet : Number
.characterSet : Text

The character set that the 4D Web Server should use to communicate with browsers connecting to the application. O valor padrão realmente depende da linguagem do SO. O valor padrão realmente depende da linguagem do SO. Aqui está a lista de identificadores correspondentes aos conjuntos de caracteres suportados pelo Servidor Web 4D:

  • 4 = ISO-8859-1
  • 12 = ISO-8859-9
  • 13 = ISO-8859-10
  • 17 = Shift-JIS
  • 2024 = Windows-31J
  • 2026 = Big5
  • 38 = euc-kr
  • 106 = UTF-8
  • 2250 = Windows-1250
  • 2251 = Windows-1251
  • 2253 = Windows-1253
  • 2255 = Windows-1255
  • 2256 = Windows-1256

.cipherSuite

.cipherSuite : Text

A lista de cifras usada para o protocolo seguro. Define a prioridade dos algoritmos de criptografia implementados pelo servidor web 4D. Pode ser uma sequência de frases separadas por dois pontos (por exemplo, "ECDHE-RSA-AES128-..."). Veja a página ciphers no site OpenSSL.

.CORSEnabled

.CORSEnabled : Boolean

O estado do serviço CORS (Cross-origin resource sharing) para o servidor. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Por razões de segurança, solicitações de "cross-domain" são proibidas no nível do navegador por padrão. Quando desativado (False, padrão), todas as solicitações de cruzamento de sites enviadas com CORS são ignoradas. Quando habilitado (verdadeiro) e um domínio ou método não permitido envia uma solicitação de site cruzado, ele é rejeitado com uma resposta de erro "403 - proibido".

Padrão: Falso (desabilitado)

For more information about CORS, please refer to the Cross-origin resource sharing page on Wikipedia.

.CORSSettings

.CORSSettings : Collection

Contains the list of allowed hosts and methods for the CORS service (see CORSEnabled property). Cada objeto deve conter uma propriedade host e, opcionalmente, uma propriedade methods:

  • host (text, mandatory): Domain name or IP address from where external pages are allowed to send data requests to the Server via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas:

  • methods (texto, opcional): métodos HTTP aceito(s) para o host CORS correspondente. Separar cada método com um ";" (por exemplo: "post;get"). Separar cada método com um ";" (por exemplo: "post;get").

.debugLog

.debugLog : Integer

The status of the HTTP request log file (HTTPDebugLog_nn.txt, stored in the "Logs" folder of the application -- nn is the file number).

  • 0 = desactivado
  • 1 = habilitado sem partes do corpo (o tamanho do corpo é fornecido neste caso)
  • 3 = ativado com partes do corpo apenas em resposta
  • 5 = ativado com partes do corpo apenas em resposta
  • 7 = ativado com partes do corpo apenas em resposta

.defaultHomepage

.defaultHomepage : Text

O nome da página inicial padrão ou "" para não enviar a página inicial personalizada.

.HSTSEnabled

.HSTSEnabled : Boolean

O estado do HTTP Strict Transport Security (HSTS). O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. Navegadores gravarão as informações de HSTS na primeira vez que receberem uma resposta do servidor web, então quaisquer futuras solicitações HTTP serão automaticamente transformadas em solicitações HTTPS. O HSTS permite que o servidor declare que os navegadores só devem interagir com ele através de conexões HTTPS seguras. A HSTS requer que HTTPS esteja ativado no servidor. HTTP deve também ser habilitado para permitir conexões iniciais de clientes.

.HSTSMaxAge

.HSTSMaxAge : Integer

O tempo máximo (em segundos) que HSTS está ativo para cada nova conexão cliente. Esta informação é armazenada no lado do Cliente durante a duração especificada.

Valor padrão: 63072000 (2 anos).

.HTTPCompressionLevel

.HTTPCompressionLevel : Integer

The compression level for all compressed HTTP exchanges for the 4D HTTP server (client requests or server replies). Este seletor permite otimizar trocas priorizando a velocidade de execução (menos compactação) ou a quantidade de compressão (menos velocidade)

Valores possíveis:

  • 1 a 9 (onde 1 é a compressão mais rápida e 9 a mais alta).
  • -1 = define um compromisso entre a velocidade e a taxa de compressão.

Padrão = 1 (compressão mais rápida).

.HTTPCompressionThreshold

.HTTPCompressionThreshold : Integer

The size threshold (bytes) for requests below which exchanges should not be compressed. Essa configuração é útil para evitar perder o tempo da máquina ao comprimir pequenas trocas.

Limite de compressão padrão = 1024 bytes

.HTTPEnabled

.HTTPEnabled : Boolean

Estado do protocolo HTTP.

.HTTPPort

.HTTPPort : Integer

O número da porta IP de escuta para HTTP.

O padrão = 80

.HTTPTrace

.HTTPTrace : Boolean

A ativação de HTTP TRACE. For security reasons, by default the Web server rejects HTTP TRACE requests with an error 405. When enabled, the web server replies to HTTP TRACE requests with the request line, header, and body.

.HTTPSEnabled

.HTTPSEnabled : Boolean

O estado do protocolo HTTPS.

.HTTPSPort

.HTTPSPort : Integer

O número da porta IP de escuta para HTTPS.

O padrão = 443

.inactiveProcessTimeout

.inactiveProcessTimeout : Integer

Essa propriedade não é retornada no modo de sessões dimensionáveis.

A duração da vida (em minutos) dos processos de sessão legados inativos. At the end of the timeout, the process is killed on the server, the On Web Legacy Close Session database method is called, then the legacy session context is destroyed.

Default = 480 minutos

.inactiveSessionTimeout

.inactiveSessionTimeout : Integer

Essa propriedade não é retornada no modo de sessões dimensionáveis.

The life duration (in minutes) of inactive legacy sessions (duration set in cookie). No final do período, o cookie da sessão expira e não é mais enviada pelo cliente HTTP.

Default = 480 minutos

.IPAddressToListen

.IPAddressToListen : Text

O Endereço IP no qual o Servidor Web 4D receberá solicitações HTTP. Normalmente, nenhum endereço específico é definido. Os formatos string IPv6 e IPv4 são compatíveis

.isRunning

.isRunning : Boolean

Propriedade apenas leitura

O estado de execução do servidor web.

.keepSession

.keepSession : Boolean

Contains True if legacy sessions are enabled in the web server, False otherwise.

Veja também

.scalableSession

.logRecording

.logRecording : Integer

O modo de registro do log das solicitações (logweb.txt).

  • 0 = Não registrar (padrão)
  • 1 = Guardar no formato CLF
  • 2 = Guardar no formato DLF
  • 3 = Guardar no formato ELF
  • 4 = Guardar no formato WLF

.maxConcurrentProcesses

.maxConcurrentProcesses : Integer

O número máximo de processos web simultâneos suportados pelo servidor. Quando este número (menos um) é alcançado, 4D não cria outro processos e retorna o status HTTP 503 - Serviço indisponível para novas petições.

Valores possíveis: 10 - 32000

Normal = 100

.maxRequestSize

.maxRequestSize : Integer

Contains the maximum size (in bytes) of incoming HTTP requests (POST) that the web server is allowed to process. Passar o valor máximo (2147483647) significa na prática que não é estabelecido um limite. Este limite é utilizado para evitar a saturação do servidor web devido a pedidos recebidos demasiado grandes. Se um pedido atingir este limite, o servidor web rejeita-o.

Valores possíveis: 500000 - 2147483647

.maxSessions

.maxSessions : Integer

Essa propriedade não é retornada no modo de sessões dimensionáveis.

Contém o número máximo de sessões legacy simultâneas. When you reach the limit, the oldest legacy session is closed (and On Web Legacy Close Session database method is called) if the web server needs to create a new one. The number of simultaneous legacy sessions cannot exceed the total number of web processes (maxConcurrentProcesses property, 100 by default)

.minTLSVersion

.minTLSVersion : Integer

A versão mínima de TLS aceita para as conexões. As tentativas de ligação de clientes que suportam apenas versões abaixo do mínimo serão rejeitadas.

Valores possíveis:

  • 1 = TLSv1_0
  • 2 = TLSv1_1
  • 3 = TLSv1_2 (padrão)
  • 4 = TLSv1_3

Se modificado, o servidor deve ser reiniciado para utilizar o novo valor.

.name

.name : Text

Propriedade apenas leitura

O nome da aplicação web server.

.openSSLVersion

.openSSLVersion : Text

Propriedade apenas leitura

A versão da biblioteca OpenSSL usada.

.perfectForwardSecrecy

.perfectForwardSecrecy : Boolean

Propriedade apenas leitura

A disponibilidade de PFS no servidor.

.rootFolder

.rootFolder : Text

O caminho da pasta raiz do servidor web . O caminho está formatado no caminho completo POSIX usando sistemas de arquivos. When using this property in the settings parameter, it can be a Folder object.

.scalableSession

.scalableSession : Boolean

Contains True if scalable sessions are used in the web server, and False otherwise.

Veja também

.keepSession

.sessionCookieDomain

.sessionCookieDomain : Text

O "domain" do cookie de sessão. Utilizado para controlar o alcance dos cookies da sessão. Se definir, por exemplo, o valor "/*.4d.fr" para este selector, o cliente só enviará um cookie quando o pedido for dirigido ao domínio ".4d.fr", o que exclui os servidores que hospedam dados estáticos externos.

.sessionCookieName

.sessionCookieName : Text

O nome do cookie usado para armazenar o ID da sessão.

Propriedade apenas leitura

.sessionCookiePath

.sessionCookiePath : Text

O campo "path" do cookie de sessão. Utilizado para controlar o alcance dos cookies da sessão. Se definir, por exemplo, o valor "/4DACTION" para este selector, o cliente só enviará um cookie para pedidos dinâmicos que comecem por 4DACTION, e não para imagens, páginas estáticas, etc.

.sessionCookieSameSite

História
ReleaseMudanças
19Adicionado

.sessionCookieSameSite : Text

O valor "SameSite" do cookie de sessão. Possíveis valores (usando constantes):

ParâmetrosValorDescrição
Web SameSite Strict"Strict"Valor por defeito - Os cookies só são enviados num contexto de primeira parte
Web SameSite Lax"Lax"Os cookies também são enviados em pedidos cruzados mas apenas quando um utilizador está a navegar para o sítio de origem (isto é, quando segue um link).
Web SameSite None"None"Os cookies são enviados em todos os contextos, ou seja, em resposta a pedidos tanto de primeira parte como de origem cruzada.

Veja a descrição do cookie da sessão SameSite para informações detalhadas.

.sessionIPAddressValidation

.sessionIPAddressValidation : Boolean

Esta propriedade não é usada no modo sessões escaláveis (não há validação de endereço IP).

O validação de endereço IP para cookies de sessão. Por razões de segurança, por defeito o servidor web verifica o endereço IP de cada pedido contendo um cookie de sessão e rejeita-o se este endereço não corresponder ao endereço IP utilizado para criar o cookie. Em algumas aplicações específicas, poderá querer desactivar esta validação e aceitar cookies de sessão, mesmo quando os seus endereços IP não correspondem. Por exemplo, quando os dispositivos móveis mudam entre redes WiFi e 3G/4G, o seu endereço IP muda. Neste caso, pode permitir que os clientes possam continuar a utilizar as suas sessões web mesmo quando os endereços IP mudam (esta configuração reduz o nível de segurança da sua aplicação).

.start()

História
ReleaseMudanças
18 R3Adicionado

.start() : Object
.start( settings : Object ) : Object

ParâmetroTipoDescrição
settingsObject->Configurações do servidor Web a definir no arranque
ResultadosObject<-Estado de arranque do servidor web

The .start() function starts the web server on which it is applied, using properties set in the optional settings object parameter.

The web server starts with default settings defined in the settings file of the project or (host database only) using the WEB SET OPTION command. However, using the settings parameter, you can define customized properties for the web server session.

All settings of Web Server objects can be customized, except read-only properties (.isRunning, .name, .openSSLVersion, .perfectForwardSecrecy, and [.sessionCookieName(#sessioncookiename)]).

As configurações de sessão personalizadas serão redefinidas quando a função .stop() for chamada.

Objeto devolvido

A função devolve um objecto que descreve o estado de lançamento do servidor Web. Este objeto pode conter as seguintes propriedades:

PropriedadeTipoDescrição
successParâmetrosVerdadeiro se o servidor web foi correctamente iniciado, Falso caso contrário
errorsCollectionpilha de erros 4D (não devolvidos se o servidor web começou com sucesso)
[].errCodeNumberCódigo de erro 4D
[].messageTextDescrição do erro 4D
[].componentSignatureTextAssinatura da componente interna que devolveu o erro

Se o servidor Web já tiver sido lançado, é devolvido um erro.

Exemplo

 var $settings;$result : Object
var $webServer : 4D.WebServer

$settings:=New object("HTTPPort";8080;"defaultHomepage";"myAdminHomepage.html")

$webServer:=WEB Server
$result:=$webServer.start($settings)
If($result.success)
//...
End if

.stop()

História
ReleaseMudanças
18 R3Adicionado

.stop()

ParâmetroTipoDescrição
Não exige nenhum parâmetro

A função .stop() interrompe o servidor web no qual ele é aplicado.

Se o servidor web foi iniciado, todas as ligações e processos web são fechados, uma vez terminados os pedidos actualmente tratados. Se o servidor web não foi iniciado, o método não faz nada.

This function resets the customized web settings defined for the session using the settings parameter of the .start() function, if any.

Exemplo

Para parar o servidor Web da base de dados:

 var $webServer : 4D.WebServer

$webServer:=WEB Server(Web server database)
$webServer.stop()