Ir para conteúdo
Faça parte da equipe! (2024) ×

Delphi: Desenvolvendo um Web Server


Surfistinha£
 Compartilhar

Posts Recomendados

Introdução

 

Neste artigo iremos desenvolver passo a passo um simples web server, demonstrando a troca de informações entre este e o browser.

 

Código HTML

 

São necessários alguns conhecimentos em HTML, sobretudo FORMs.

Salve o código abaixo em um arquivo no diretório indicado em um Alias do IIS(Exemplo de configuração do IIS no anexo1) com o nome de form.htm.

 

É necessário se cadastrar para acessar o conteúdo.

 

Criação do web server (CGI)

 

Iremos criar um CGI simples para receber os dados do formulário do arquivo form.htm.

File / New / Other :

app.jpg

Devemos agora escolher o tipo de Web Server que desejamos criar. Neste exemplo utilizaremos "CGI Stand-alone".

cgi.jpg

Foi criado um WebModule sem nenhum componente.

 

A classe TWebModule é descendente de TDataModule, container de componentes não visuais(Acesso a banco de dados, interação com Office, ..), porem o TWebModule possui "Action Itens", responsáveis pelo request e response (receber e enviar) de dados em sua aplicação.

 

Breves conceitos sobre as actions.

 

Um CGI pode tratar várias requisições de maneiras diferentes, utilizando os actions.

 

Por exemplo:

 

* "http://127.0.0.1/artigo/exemplo.exe" trata a Action definida como Default.

* "http://127.0.0.1/artigo/exemplo.exe/form" trata a Action com PathInfo = "form".

* "http://127.0.0.1/artigo/exemplo.exe/email" trata a Action com PathInfo = "email".

 

Configuração do WebModule

 

Delphi: Desenvolvendo um Web Server

Publicado em: 08/07/2005

Compartilhe

 

Introdução

 

Neste artigo iremos desenvolver passo a passo um simples web server, demonstrando a troca de informações entre este e o browser.

 

Código HTML

 

São necessários alguns conhecimentos em HTML, sobretudo FORMs.

Salve o código abaixo em um arquivo no diretório indicado em um Alias do IIS(Exemplo de configuração do IIS no anexo1) com o nome de form.htm.

 

<HTML>

<HEADER>

<TITLE>Formulário: Teste</TITLE>

</HEADER>

<BODY>

<FORM METHOD="POST" ACTION="exemplo1.exe">

Nome:<INPUT TYPE="TEXT" NAME="NOME"><BR>

Apelido:<INPUT TYPE="TEXT" NAME="APELIDO"><BR>

Telefone: <INPUT TYPE="TEXT" NAME="TELEFONE"><BR>

<INPUT TYPE="RESET" VALUE="Limpar campos">

<INPUT TYPE="SUBMIT" VALUE="Enviar dados">

</FORM>

</BODY>

</HTML>

 

Criação do web server (CGI)

 

Iremos criar um CGI simples para receber os dados do formulário do arquivo form.htm.

File / New / Other :

 

Devemos agora escolher o tipo de Web Server que desejamos criar. Neste exemplo utilizaremos "CGI Stand-alone".

 

Foi criado um WebModule sem nenhum componente.

 

A classe TWebModule é descendente de TDataModule, container de componentes não visuais(Acesso a banco de dados, interação com Office, ..), porem o TWebModule possui "Action Itens", responsáveis pelo request e response (receber e enviar) de dados em sua aplicação.

 

Breves conceitos sobre as actions.

 

Um CGI pode tratar várias requisições de maneiras diferentes, utilizando os actions.

 

Por exemplo:

 

* "http://127.0.0.1/artigo/exemplo.exe" trata a Action definida como Default.

* "http://127.0.0.1/artigo/exemplo.exe/form" trata a Action com PathInfo = "form".

* "http://127.0.0.1/artigo/exemplo.exe/email" trata a Action com PathInfo = "email".

 

Configuração do WebModule

 

No object inspector, nas propriedades do WebModule devemos editar as Actions. Clicando com o botão direito do mouse na janela "Editing Webmodule1.Action" clicando em Add. Mude a propriedade Default deste Action criado para True e seu PathInfo para "/form". A propriedade MethodType define a forma do fluxo dos dados entre o navegador e o CGI. Utilizaremos POSTO como o utilizado no formulário do HTML(arquivo form.htm).

 

Evento OnAction do Action criado.

 

As Actions recebem (TWebRequest) e retornam (TWebResponse) informações com o browser.

 

Cada Action possui um PathInfo associado, o que nos oferece eventos OnAction para cada um deles. Assim tratamos as requisições de forma diferente.

 

Assinatura do evento OnAction:

 

procedure WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

 

Request: Requisição feita pelo cliente

Response: Resposta que retornará ao cliente

Handled: Outros Actions podem completar a resposta desta requisição. Neste caso Handled deve ser False.

 

Visto algums conceitos sobre os Actions, iremos implementar um código simples para responder os dados enviados pelo HTML. Vamos codificar então o responsável pelo recebimento e envio de respostas da nossa aplicação.

 

É necessário se cadastrar para acessar o conteúdo.

 

Iremos então compilar o projeto e copiarmos o executável no Path indicado pelo IIS com o nome exemplo1.exe (ou o mesmo indicado pelo HTML).

 

Pronto! Temos um simples Web Server funcionando!

 

browser.jpg

 

Anexo 1:

 

Configurando IIS

 

Configurar o IIS (Internet Information Services) que será nosso servidor web é uma tarefa simples, porém para facilitar o desenvolvimento do exemplo do artigo iremos seguir passo a passo.

 

No "Painel de Controle" / "Ferramentas Administrativas" clique em "Gerenciador do Internet Services"

 

iis1.jpg

 

Iremos criar uma nova "Pasta Virtual". Nela relacionaremos um endereço web a um diretório local ("http://127.0.0.1/cgi-bin/exemplo.exe" apontar para "c:\www\exemplo.exe").

 

Alias é o apelido de sua pasta virtual. No endereço "http://127.0.0.1/cgi-bin/exemplo.exe" o alias seria "cgi-bin".

 

Agora iremos indicar o diretório local onde está nosso aplicativo "c:\www\exemplo.exe" por exemplo.

 

MUITO IMPORTANTE: Marcar a opção executar ISAPI ou CGI. Caso esta opção não seja marcada ao tentar acessar o aplicativo pelo browser irá ser feito download do aplicativo, não sendo executado como desejado. Não se esqueça também de iniciar no servidor web caso ele não esteja ativo.

 

Créditos

Gustavo

Surf

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.