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 AuthenticationeOn 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ções | Parâmetro | Valor retornado | Descriçã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:
- usando o parâmetro 
settingsda função.start()(exceto as propriedades somente leitura, veja abaixo), - se não for usado, usando o comando 
WEB SET OPTION(apenas aplicações host), - 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 
settingsda função.start(). 
isRunning, name, openSSLVersion e perfectForwardSecrecy são propriedades somente de leitura que não podem ser predefinidas no parâmetro objeto
settingspara a funçãostart().
Â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 PARAMETER | Aplicação local de servidor Web | 
WEB CLOSE SESSION | Servidor Web que recebeu o pedido | 
WEB GET BODY PART | Servidor Web que recebeu o pedido | 
WEB Get body part count | Servidor Web que recebeu o pedido | 
WEB Get Current Session ID | Servidor Web que recebeu o pedido | 
WEB GET HTTP BODY | Servidor Web que recebeu o pedido | 
WEB GET HTTP HEADER | Servidor Web que recebeu o pedido | 
WEB GET OPTION | Aplicação local de servidor Web | 
WEB Get server info | Aplicação local de servidor Web | 
WEB GET SESSION EXPIRATION | Servidor Web que recebeu o pedido | 
WEB Get session process count | Servidor Web que recebeu o pedido | 
WEB GET STATISTICS | Aplicação local de servidor Web | 
WEB GET VARIABLES | Servidor Web que recebeu o pedido | 
WEB Is secured connection | Servidor Web que recebeu o pedido | 
WEB Is server running | Aplicação local de servidor Web | 
WEB SEND BLOB | Servidor Web que recebeu o pedido | 
WEB SEND FILE | Servidor Web que recebeu o pedido | 
WEB SEND HTTP REDIRECT | Servidor Web que recebeu o pedido | 
WEB SEND RAW DATA | Servidor Web que recebeu o pedido | 
WEB SEND TEXT | Servidor Web que recebeu o pedido | 
WEB SET HOME PAGE | Aplicação local de servidor Web | 
WEB SET HTTP HEADER | Servidor Web que recebeu o pedido | 
WEB SET OPTION | Aplicação local de servidor Web | 
WEB SET ROOT FOLDER | Aplicação local de servidor Web | 
WEB START SERVER | Aplicação local de servidor Web | 
WEB STOP SERVER | Aplicação local de servidor Web | 
WEB Validate digest | Servidor Web que recebeu o pedido |