Repository navigation
recursos
mobius1qwe edited this page Oct 29, 2026
·
11 revisions
Home > Recursos
O que o RAL faz, e desde qual versão.
Legenda: ✔ tem · ❔ não testado · 📅 planejado · 2.0 🚧 = em
desenvolvimento, ainda não lançado e pode mudar.
| Recurso | Desde | Detalhe |
|---|---|---|
| Métodos HTTP | 1.0 | GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, TRACE; método desconhecido responde 501 (1.2) |
| HTTP/1.1 | 1.0 | todos os motores |
| HTTP/2 | 1.2 |
servidor mORMot2 no modo smHttpSys (Windows); ver HTTP/2
|
| QUIC | 1.2 |
MsQuic e Kwik, só RAL com RAL (não é HTTP/3); ver QUIC |
| HTTP/3 | 📅 | planejado |
| Compressão | 1.0 | deflate, zlib, gzip; brotli e zstd com pacote à parte |
| Não comprimir o que já vem comprimido (imagem, zip, pdf...) | 1.2 |
|
| CORS | 1.0 | fechado por padrão a partir da 1.2
|
| IPv4 / IPv6 | 1.0 | conforme o motor |
| Tipos MIME | 1.0 | lista da IANA + a do sistema; AddMIMEType para os seus |
| Portas | 1.0 | 0 a 65535 |
| Servir site e arquivos (WebModule) | 1.0 | cache HTTP, faixas de bytes, página índice: 1.2
|
| Banco de dados pela rede (DBWare) | 1.0 | pool de conexões: 1.1 |
| Documentação Swagger (OpenAPI 3.0) e exportação Postman | 1.0 | ver Swagger |
| Plugins (cada recurso é um componente que se liga ao servidor) | 2.0 🚧 |
|
| Módulos de terceiros com pedido e resposta próprios | 2.0 🚧 |
|
| Corpo do pedido e da resposta sem cópias; corpos grandes em disco | 2.0 🚧 |
ver Corpo sem cópias |
| Limite de requisições processadas ao mesmo tempo | 2.0 🚧 |
ver Desempenho |
| Serviço SOAP 1.1 e 1.2 com WSDL gerado | 2.0 🚧 |
ver Servidor SOAP |
| Broker MQTT 3.1.1 e 5.0, gateway MQTT-SN, ponte REST | 2.0 🚧 |
ver Broker MQTT |
| Recurso | Desde | Detalhe |
|---|---|---|
| HTTPS (TLS 1.2 e 2.0) | 1.0 | conforme o motor; ver HTTPS |
| Certificado autoassinado gerado e renovado pelo RAL | 2.0 🚧 |
ver Certificado automático |
| Lista de IPs liberados e bloqueados | 1.0 | |
| Proteção contra força bruta (senha errada repetida) | 1.0 | conta só senha recusada a partir da 1.2
|
| Limite de pedidos por IP (flood) | 1.0 | |
Bloqueio de ../ no caminho (path traversal) |
1.0 | |
| Tamanho máximo do pedido | 1.1 | |
Validar o SQL que chega pela rede (OnValidateSQL) |
1.1 | |
| Cabeçalhos de segurança (nosniff, HSTS, CSP...) | 1.2 |
|
| Esconder o texto da exceção num erro 500 | 1.2 |
|
| Criptografia ponto a ponto (AES) | 1.0 | CBC com verificação de integridade: 1.1; chave com PBKDF2: 1.2; ver Criptografia
|
| Cliente aceita só o certificado esperado (pin) | 1.1 | ver HTTPS no cliente |
Checklist para produção: Segurança.
| Tipo | Desde | Padrão |
|---|---|---|
| Basic | 1.0 | RFC 7617 |
| JWT (HS256/384/512) | 1.0 | RFC 7519; token em cookie: 1.1; RS256/ES256: 2.0 🚧
|
| Digest | 2.0 🚧 |
RFC 7616 (MD5, SHA-256, SHA-512-256) |
| OAuth2 | 2.0 🚧 |
RFC 6749/6750, PKCE, introspecção, JWKS |
| OAuth 1.0a | — | removido na 2.0 🚧 (nunca funcionou) |
Ver Autenticação.
| Recurso | Detalhe |
|---|---|
| AES | 128, 192 e 256 bits, CBC, PKCS#7 |
| Hash | MD5, SHA-1, SHA-2 (224, 256, 384, 512, 512/224, 512/256), HMAC |
| Derivação de chave | PBKDF2-HMAC-SHA256 (1.2) |
| Codificação | Base64, Base64url, URL, HTML, hexadecimal |
| Tipo | |
|---|---|
| Aplicação com janela (VCL, FMX, LCL) | ✔ |
| Aplicação console | ✔ |
| Daemon Linux (console) | ✔ |
| CGI (atrás do IIS, Apache, nginx) | ✔ |
| ISAPI | ❔ |
Ver Colocar no ar.
| Recurso | Desde |
|---|---|
Subníveis ilimitados (/api/v1/clientes) |
1.0 |
Parâmetro no caminho (/clientes/:id) |
1.0 |
| Métodos permitidos e autenticação por método | 1.0 |
| Um procedimento por verbo na mesma rota | 1.1 |
Atalhos Allow([...]) e SkipAuth([...])
|
1.2 |
Verbo não permitido responde 405 com Allow
|
1.2 |
Parâmetros de entrada e saída declarados (InputParams, OutputParams) |
1.2 (saída) |
Ver Rotas e parâmetros.
| Recurso | Desde |
|---|---|
Mesmo código para todos os motores (EngineType) |
1.0 |
| Vários endereços com troca automática quando um cai | 1.0 |
| Chamada que espera a resposta ou em segundo plano | 1.0 (esperar virou o padrão na 1.2) |
| Eventos antes e depois de cada tentativa | 1.1 |
| Reaproveitar a conexão entre chamadas | 1.2 |
| HTTP/2 e Android (OkHttp, Kwik, MsQuic) | 1.2 |
| Cliente SOAP 1.1 e 1.2, importando o WSDL | 2.0 🚧 |
| Cliente MQTT 3.1.1 e 5.0 e MQTT-SN 1.2 e 2.0 | 2.0 🚧 |
Ver O cliente.
| Recurso | |
|---|---|
| Assistente de novo projeto (Wizard) | ✔ |
| Pacotes separados por motor, banco e compressão | ✔ |
Conversão de dataset para JSON (ToJSON, DataSetToJSON) |
✔ |
| XML: leitor, documento com API fluente e caminhos (XML) | 2.0 🚧 |
| Dataset em XML: DBWare, RAW, DataPacket (ClientDataSet) e ADO (Storage XML) | 2.0 🚧 |
| Migração do REST Dataware | RESTDW2RAL |
Começar
Servidor
- Rotas e parâmetros
- Ler o pedido e responder
- Resposta em fluxo 🚧
- Plugins 🚧
- Autenticação
- Banco de dados (DBWare)
- Servir site e arquivos
- Swagger e Postman
- Servidor SOAP 🚧
- HTTPS
- Criptografia ponto a ponto
- Segurança para produção
- Colocar no ar
- Desempenho
MQTT 🚧
- O que é e quando usar 🚧
- Cliente MQTT 🚧
- Broker MQTT 🚧
- MQTT-SN 🚧
- Ponte REST 🚧
- Segurança 🚧
- Rede ruim 🚧
Cliente
Motores
Avançado
Ajuda
- Problemas comuns
- Atualizar o Indy
- Várias versões do Delphi
- Vídeos e guias
- Módulos de terceiros
- Licenças
- Contribuir
- Roadmap e changelog
🚧 = em desenvolvimento, pode mudar