segunda-feira, 4 de junho de 2012

SERVIDOR WWW


O termo servidor web pode significar duas coisas:
  1. Um programa de computador responsável por aceitar pedidos HTTP de clientes, geralmente os navegadores, e servi-los com respostasHTTP, incluindo opcionalmente dados, que geralmente são páginas web, tais como documentos HTML com objetos embutidos (imagens, etc.);
  2. Um computador que executa um programa que provê a funcionalidade descrita acima.

Índice

  [esconder

[editar]Características

Os pedidos http que se referem habitualmente a páginas HTML são normalmente feitos através de browsers.
O processo se inicia com a conexão entre o computador onde está instalado o servidor web e o computador do cliente; como na web não é possível prever a que hora se dará essa conexão, os servidores web precisam estar disponíveis dia e noite.
A partir daí é processado o pedido do cliente, e conforme as restrições de segurança e a existência da informação solicitada, o servidor devolve os dados.
Atualmente há cada vez mais programas que fazem pedidos HTTP (leitores de RSS e outros) e quase desde o inicio da web que os ficheiros servidos pelo webserver vão para além dos ficheiros HTML, incluindo imagens, ficheiros de som, pdfs, etc.
Genericamente tudo o que se enquadre no conceito de ficheiro pode ser enviado como resultado de um pedido http.
Finalmente, os servidores web também podem executar programas e scripts, interagindo mais com o usuário.

[editar]Exemplo do fluxo pedido/resposta gerado quando se acessa uma página estática

Supondo que num servidor web existe um ficheiro chamado introWebServer.html com o seguinte conteúdo
<html>
 <body>
  <p>olá mundo</p>
 </body>
</html>
Se no browser tentar aceder a este ficheiro a sequência "pedido / resposta" iria produzir os seguintes comandos:
Pedido
GET /introWebServer.html HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-pdf */*
Accept-Language: en-gb,pt;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Host: localhost:79
Connection: Keep-Alive
Cookie: infoview_userCultureKey=useBrowserLocale
Resposta
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
X-Powered-By: ASP.NET
Date: Thu, 25 May 2006 14:02:51 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Thu, 25 May 2006 14:02:12 GMT
ETag: "cd3bdd2380c61:ba9"
Content-Length: 54

<html>
 <body>
  <p>olá mundo</p>
 </body>
</html>
Embora estes valores variem de acordo com o browser que utilizarmos e com o servidor web que responde a este pedido http, muito do conteúdo será sempre igual:
  • no pedido
GET /introWebServer.html HTTP/1.1 ou seja estamos a pedir usando o protocolo HTTP versão 1.1 o ficheiro introWebServer.html que está na raiz do servidor
  • na resposta
HTTP/1.1 200 OK ou seja o pedido é válido (200 OK) e o conteúdo segue em baixo. Como podemos ver depois de mais um conjunto de dados aparece finalmente o conteúdo HTML da página que tínhamos criado.
Independentemente de estarmos falando de páginas dinâmicas ou páginas estáticas este será sempre o fluxo que o pedido/resposta entre o servidor e o browser irá provocar.

[editar]Páginas Dinâmicas e Páginas Estáticas

A origem do conteúdo enviado pelo servidor web numa resposta a um pedido HTTP pode ser:
  1. estática - se vier directamente de um ficheiro já existente no servidor
  2. dinâmica - se for criada dinamicamente por outro programa, script ou API chamado pelo servidor.
no caso de uma página dinâmica, o pedido, depois de recebido, é processado pelo servidor web que vai criar dinamicamente o conteúdo que depois será enviado para o cliente.
as páginas dinâmicas têm a vantagem de poderem ser programadas, ou seja usando alguma linguagem de programação (que dependendo do servidor web pode ser phpJavaPerlVisual Basic .NETC#, ...) podemos criar programas que correm no servidor web, eventualmente acessando a bases de dados e cujo resultado é enviado para o browser.

[editar]Exemplo do fluxo pedido/resposta gerado quando se acede a uma página dinâmica

Num servidor web capaz de responder a páginas dinâmicas (no nosso caso o IIS da Microsoft) temos um ficheiro chamado introWebServer.asp com o seguinte conteúdo
<html>
 <body>
  <%
  for i=1 to 10
        Response.Write("<p>olá mundo</p>")
  next
  %>
 </body>
</html>
Se no browser tentar aceder a este ficheiro, a sequência pedido / resposta iria produzir os seguintes comandos
Pedido
GET /introwebserver.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-gb,pt;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Host: localhost:79
Connection: Keep-Alive
Cookie: infoview_userCultureKey=useBrowserLocale; ASPSESSIONIDQSRCCSAS=KJLFNNNCNHKODOIOCIICJFBA
Resposta
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Date: Thu, 25 May 2006 14:20:34 GMT
X-Powered-By: ASP.NET
Content-Length: 198
Content-Type: text/html
Cache-control: private

<html>
 <body>
  <p>olá mundo</p><p>olá mundo</p><p>olá mundo</p><p>olá mundo</p><p>olá mundo</p><p>olá mundo</p><p>olá mundo</p><p>olá mundo</p><p>olá mundo</p><p>olá mundo</p>
 </body>
</html>
Como podemos ver, o pedido/resposta de um ficheiro estático ou de um ficheiro dinâmico gera fluxos de informação praticamente iguais, isto é, na web a informação que circula é essencialmente a mesma. a diferença é que um ficheiro dinâmico tem que ser primeiro processado pelo servidor web.

[editar]

Nenhum comentário:

Postar um comentário