Sie sind auf Seite 1von 9

Capítulo 5 – Web Básico

linguagens. Para executar código Java é necessário um servidor web Java,


como o Tomcat (ver o próximo capítulo).

O Apache pode ser encontrado em http://httpd.apache.org, mas neste livro


será estimulado o uso de um servidor de aplicações como o Tomcat, que é
um Servlet Container capaz de processar páginas JSPs e servlets Java.

LAMP

LAMP é um acrônimo para Linux, Apache, MySQL e PHP, que são


tecnologias de código aberto e livre usadas tipicamente em conjunto.

A combinação dessas tecnologias permite o uso de uma aplicação Web


dinâmica hospedada em um servidor Linux, que trata as requisições Web via
servidor Apache, processa as páginas com PHP (ou Perl/Python) e acessa o
banco de dados MySQL.

Conceitos de Internet
Já se falou no capítulo sobre a World Wide Web e os servidores web, e esses
assuntos sempre deparam com o protocolo HTTP. Esse protocolo será
detalhado mais adiante, visto que é necessário conhecê-lo a fundo para
entender o funcionamento de servlets, páginas JSP e frameworks de
desenvolvimento web.

Mas antes de abordar o HTTP, é aconselhado conhecer um pouco da suíte


TCP/IP, a qual este protocolo pertence. A sua criação remonta da década de
70, quando o DoD (US Department of Defense) estabeleceu um conjunto de
protocolos de domínio público para a comunicação entre redes de
computadores de modelos distintos.

A Figura 5.1 mostra alguns dos principais protocolos da suíte TCP/IP. A sua
especificação não define nenhum protocolo para a camada física, o que
permite que seja implementado sobre uma variedade de protocolos físicos,
como: Ethernet, ATM, Token Ring e X.25. A partir da interface de rede os

167
Rafael B. Pereira (http://www.rbper.com)

protocolos de mais baixo nível são os da camada de rede: entre eles o IP, o
ARP e o ICMP (este último utilizado pelo comando Ping)

Figura 5.1: Principais Protocolos do TCP/IP

O protocolo IP (Internet Protocol) é responsável pelo encaminhamento de


pacotes de dados através das várias sub-redes. Os dados da rede são enviados
por meio de datagramas que contém informações de controle, entre elas o
endereço IP origem (ex: 192.168.0.1) e o endereço IP destino (ex:
64.233.163.104), além dos dados enviados. Os nós da rede (ex: roteadores)
usam essas informações para encaminhar o datagrama para o destino correto.
O protocolo não garante a ordenação dos datagramas (i.e: que eles chegarão
na ordem correta), nem a sua entrega (podem ocorrer perdas ou duplicatas),
oferecendo, portanto, um serviço não confiável. A camada de transporte
pode providenciar essa confiabilidade, por meio do protocolo TCP.

O protocolo TCP (Transmission Control Protocol) é usado para um


transporte fim-a-fim confiável entre a origem e o destino. Para isso é
estabelecida uma conexão entre os dois pontos, usando técnicas para
assegurar que os pacotes sejam entregues de maneira ordenada, íntegra e
confiável. A maioria dos protocolos de aplicação que precisam dessa
confiabilidade, como o HTTP, o FTP e o Telnet, utilizam o TCP na camada
de transporte. Uma alternativa ao TCP que não possui essa garantia é o UDP.

O protocolo UDP (User Datagram Protocol), embora também pertença à


camada de transporte e utilize o IP para entrega dos datagramas pela rede, é

168
Capítulo 5 – Web Básico

um protocolo não-confiável, que não estabelece conexão entre a origem e o


destino. Por não gerenciar conexões, ele apresenta um desempenho melhor
que o TCP, e é recomendado para aplicações de transmissão de áudio ou
vídeo em tempo real, como o serviço VoIP, ou mesmo protocolos de
comunicação que não exigem conexão, como o DHCP ou o DNS.

Basicamente são esses os principais protocolos da suíte TCP/IP. O conjunto


foi popularizado não só pela sua rápida expansão nas redes americanas, mas
também por ser um protocolo público e independente de modelos de
equipamentos ou sistemas operacionais, permitindo que qualquer máquina
pudesse ser identificada na Internet. O seu funcionamento baseado em
camadas garante que os serviços mais básicos sejam fornecidos pelas
camadas mais baixas (rede, transporte) às camadas mais próximas do usuário
(aplicação), onde são implementados os protocolos de mais alto nível, como:
POP, SMTP, HTTP, DNS, DHCP, FTP, SSH, SOAP, NNTP, e outras siglas
corriqueiras conhecidas pelos administradores de redes.

Para saber mais...


Muito da teoria da web é proveniente da área de redes,
como os conceitos de protocolo, serviço e porta, a
divisão em camadas e arquitetura de rede em geral,
endereço IP e servidores DNS, o funcionamento de
modens, roteadores, hubs e outros dispositivos. No
fim do capítulo serão apresentadas referências
adequadas sobre esses assuntos.

Protocolo HTTP
Quando um usuário solicita uma página HTML ou outro tipo de documento,
por meio de uma URL em um navegador web (como o Internet Explorer ou o
Mozilla Firefox), vários processos ocorrem.

O navegador não pode apresentar o documento para o usuário diretamente,


pois ele não está presente no disco rígido da máquina onde está instalado.
Portanto é necessário traduzir a URL para o endereço físico de um servidor.
Após essa tradução, o navegador poderá conversar diretamente com o

169
Rafael B. Pereira (http://www.rbper.com)

servidor web onde está hospedada a páginas HTML requisitada (ou demais
documentos).

Essa conversa é feita por meio de requisições e respostas. O navegador faz a


requisição de um documento, e o servidor responde com o tipo de documento
(HTML, JPG, PDF, etc) e o próprio conteúdo do documento. Finalmente, o
navegador abre o documento e exibe para o usuário – ou utiliza um programa
para abrir esse documento (ex: Adobe Acrobat no caso de PDFs).

Toda essa comunicação entre o navegador e o servidor web é feita por meio
do protocolo HTTP, que define uma linguagem comum entre os dois.

O protocolo HTTP (HyperText Transfer Protocol) pertence à camada de


aplicação da suíte de protocolos TCP/IP. É um dos mais utilizados na
Internet, permitindo a interação dos clientes com os servidores web.

A versão atual do protocolo HTTP é a 1.1, e permite diferentes tipos de


requisição aos servidores web, como uma requisição GET – que pode ser
usada para buscar para o cliente uma página HTML do servidor – ou uma
requisição do tipo POST – utilizada, por exemplo, para enviar dados para o
servidor. Nas próximas seções serão descritos esses e outros tipos de
requisição HTTP, que são fundamentais para o entendimento da função do
protocolo mais conhecido da Internet.

GET

De acordo com a especificação HTTP/1.1, o método GET é usado para obter


qualquer tipo de informação ou recurso, e é identificado pela URI da
requisição (Universal Resource Identifier), que é uma parte da URL. Essa
requisição URL pode conter pares com nomes e valores adicionados à URI
solicitada, que são separados pelo caractere &. É muito comum deparar-se
com esse tipo de construção ao se navegar por sites na internet, e o usuário
pode enxergar estes dados na barra do navegador:

http://servletTest/busca.html?pais=Brasil&cidade=Rio+de+J
aneiro

170
Capítulo 5 – Web Básico

Note que o caractere espaço é normalmente convertido para +. A limitação


do método GET é o tamanho dessa cadeia de caracteres, que varia de
plataforma para plataforma, mas não costuma ser maior do que 1.024
caracteres. O método GET é invocado pelo navegador sempre que o usuário
clica em um link, ou quando um endereço é inserido na barra de endereços do
navegador, e também sempre que um recurso for solicitado (imagens,
arquivos), ou quando um formulário for submetido com o método GET
especificado em seus parâmetros:

<html><body>
<form action="/envio.html" method="GET">
Nome: <input type="text" name="nome"><p>
Idade: <input type="text" name="idade"><p>
<input type="submit" value="Enviar">
</form>
</body></html>

Caso os parâmetros nome e idade sejam preenchidos como "Justin Case" e


"25" respectivamente, uma requisição GET será feita ao se clicar no botão
"Enviar" com a seguinte requisição URL:

http://servletTest/envio.html?nome=Justin+Case&idade=25

Outra questão importante é que o método GET é idempotente, ou seja, não há


nenhum efeito colateral (prejudicial) se o método for invocado repetidas
vezes, como no caso de um cliente clicar em um hyperlink diversas vezes.

Atenção!
Caso o nome do método seja omitido em um
formulário, ainda assim o método GET será utilizado,
pois formulários utilizam-no como default para o
envio de informações.

171
Rafael B. Pereira (http://www.rbper.com)

POST

O método POST é usado para o envio de dados ao servidor, mediante um


formulário, mensagens para listas de e-mail, newsgroup ou uma grande
quantidade de texto. Uma de suas vantagens é que o conteúdo enviado por
esse método fica no corpo da mensagem, e não junto com a URL (como o faz
o método GET). Outra vantagem sobre o método GET é que nele não há
limite de dados para o envio, ou seja, uma grande quantidade de informação
pode ser enviada utilizando-se esse método. É possível enviar estes dados em
formato texto ou binário. O exemplo anterior pode ser reescrito para suportar
o método POST da seguinte forma:

<html><body>
<form action="/envio.html" method="POST">
Nome: <input type="text" name="nome"><p>
Idade: <input type="text" name="idade"><p>
<input type="submit" value="Enviar">
</form>
</body></html>

Note que, ao rodar o exemplo acima, os parâmetros nome e idade não podem
mais ser visualizados na barra do navegador ao enviar os dados requisitando
a página envio.html. Como já foi dito, esses parâmetros são enviados no
corpo da mensagem.

Ao contrário do método GET, o POST não é idempotente, pois caso o usuário


envie um formulário diversas vezes, o resultado será processado mais de uma
vez. Se não for feito um tratamento adequado da requisição, podem ocorrer
efeitos indesejados, como postagens repetidas em um fórum quando o
usuário clica várias vezes na opção de submeter.

HEAD

O método HEAD funciona de forma similar ao método GET, com a exceção


de que o servidor responde apenas com o cabeçalho da requisição, e não o
corpo da mensagem. Este cabeçalho é o mesmo retornado pelo método GET.

172
Capítulo 5 – Web Básico

Dessa forma, o cliente web pode utilizar esse método para verificar a
existência de certos atributos de seu interesse, como por exemplo:

• Data de modificação de um documento;

• Tamanho e tipo do documento;

• Tipo do servidor.

Essas informações podem ser disponibilizadas para o cliente, sem a


necessidade de receber todo o conteúdo do documento (que pode conter uma
grande quantidade de informação).

Outros métodos

O protocolo HTTP contém também os seguintes métodos: PUT, DELETE,


TRACE, OPTIONS e CONNECT. Normalmente as provas não cobram um
conhecimento mais aprofundado de nenhum deles.

O método PUT é utilizado para enviar um arquivo para o servidor, no


endereço descrito pela URI da requisição. O código HTML abaixo pode ser
utilizado para isso:

<html><body>
<form action="/temp" method="PUT">
<input type="file" name="arquivo">
<input type="submit" value="Enviar">
</form>
</body></html>

De forma análoga, o método DELETE é utilizado para remover um arquivo


do servidor, indicado pelo endereço na URI. Os demais métodos são
raramente utilizados. O desenvolvedor de sistemas web não precisa se
preocupar com eles para desenvolver a sua aplicação. De qualquer forma,
memorize os oito métodos HTTP para a realização da prova. Questões sobre
a sua existência não são incomuns, principalmente em provas voltadas para a
área de redes.

173
Rafael B. Pereira (http://www.rbper.com)

Requisição e Resposta

Uma requisição HTTP possui o seguinte formato:

GET /br.pasta/arquivo.html HTTP/1.0


Accept: text/html
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows
95)

A primeira linha é o pedido, que deve estar sempre presente. Consiste do


método (GET, POST, etc), a URI requisitada e a versão do protocolo
utilizada.

Em seguida estão os campos de cabeçalho HTTP, que são opcionais e


indicam algumas informações extras sobre a requisição, como o navegador
utilizado (User-Agent), o tipo de conteúdo aceito (Accept), etc.

Por fim podem ser incluídas informações no corpo do pedido, que no caso do
método POST são os campos de formulários enviados para o servidor.

Já uma resposta HTTP possui o seguinte formato:

HTTP/1.1 200 OK
Date : Mon, 15 Mar 2010 16:25:15 GMT
Server : Microsoft-IIS/2.0
Content-Type : text/html
Content-Length : 90
Last-Modified : Sun, 10 Jan 2010 06:25:10 GMT

<HTML>
<HEAD><TITLE>Página</TITLE>
<BODY>
Esse é um exemplo de documento.
</BODY>
</HTML>

A primeira linha exibe a versão do protocolo utilizada, e em seguida o código


de retorno da resposta e a mensagem correspondente. 200 é a mensagem
“OK”, que indica que o pedido foi realizado corretamente. Um código bem

174
Capítulo 5 – Web Básico

conhecido é o 404 “NOT FOUND”, que indica que o servidor não encontrou
o documento no endereço indicado.

Os cabeçalhos da resposta podem indicar o servidor web que respondeu à


requisição (Server), o tipo de conteúdo (Content-Type), o tamanho do
conteúdo (Content-Length), a data de última modificação, entre outras
informações.

Por fim está o conteúdo do documento propriamente dito, que pode ser a
própria página HTML em si. Caso existam referências para outros
documentos (como figuras, applets, sons), outras requisições HTTP são feitas
seguindo o mesmo procedimento – para que o navegador possa compor o
documento final para o usuário.

Um conceito importante sobre os navegadores, é que eles tratam a resposta


do servidor web independente da forma como essa resposta foi gerada. Ou
seja, se o conteúdo solicitado foi buscado diretamente como um arquivo, ou
se foi gerado por um componente do servidor – como um programa CGI,
uma página dinâmica ou um servlet – a comunicação pelo protocolo HTTP
se dá de forma transparente para o navegador.

Intranet
Uma Intranet é uma rede similar à Internet, porém privada, e conectas vários
pontos da rede ou subredes de uma empresa ou corporação. Por meio da
Intranet é possível conectar áreas e departamentos de uma empresa entre si,
oferecendo o benefício da descentralização da informação.

Como a tecnologia usada pela Intranet é a mesma da Internet, então


aproveita-se toda a infraestrutura de redes existente na empresa, além dos
mesmos protocolos e softwares – incluindo navegadores e servidores web.

Quando a Intranet é acessada também por clientes, fornecedores e outros


tipos de usuários externos à empresa, é convencionado caracterizá-la como
um Extranet.

175

Das könnte Ihnen auch gefallen