|
|
(12 revisões intermediárias por 2 usuários não estão sendo mostradas) |
Linha 4: |
Linha 4: |
|
| |
|
| Elementos da aplicação Web: | | Elementos da aplicação Web: |
| *Clientes: São os '''navegadores''' Web, como Firefox, Chrome, IExplorer, etc.
| | ;Clientes Web: São os '''navegadores''' Web, como Firefox, Chrome, IExplorer, links (navegador modo texto) etc. |
| *'''Servidores''': Armazenam as páginas Web e atendem as requisições de clientes, como por exemplo o servidor Web '''apache''', disponível nas distribuições do Linux.
| | ;Servidores Web: Armazenam as páginas Web e atendem as requisições de clientes, como por exemplo o servidor Web '''apache''', disponível nas distribuições do Linux. |
| *'''Protocolo HTTP''' (''Hipertext Transfer Protocol''): Define o formato das mensagens de requisição e resposta entre os navegadores Web (clientes) e servidores Web.
| | ;[[Protocolo HTTP]]: Define o formato das mensagens de requisição e resposta entre os navegadores Web (clientes) e servidores Web. |
| *Protocolo de transporte: A aplicação Web é do tipo pedido/resposta e usa o '''protocolo TCP''', o qual fornece transferência de dados garantida (livre de erros) para as mensagens do protocolo HTTP.
| | ;Protocolo de transporte: A aplicação Web é do tipo pedido/resposta e usa o '''protocolo TCP''', o qual fornece transferência de dados garantida (livre de erros) para as mensagens do protocolo HTTP. |
| *Porta: Os clientes requisitam páginas na '''porta 80''' do servidor Web.
| | ;Porta: Os clientes requisitam páginas na '''porta 80''' do servidor Web. |
| *Páginas Web: As páginas Web armazenadas em servidores são codificadas no formato '''HTML''' (''Hipertext Meta Language'')
| | ;Páginas Web: As páginas Web armazenadas em servidores são codificadas no formato '''HTML''' (''Hipertext Meta Language''). |
|
| |
|
| == Protocolo HTTP<ref name="KUROSE">KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem ''top-down'', São Paulo: Pearson, 2010.</ref>==
| | [[Arquivo:AplicacaoWeb.png]] |
| O protocolo HTTP usa o paradigma '''pedido/resposta''' para troca de mensagens entre o cliente e o servidor.
| |
| | |
| ;Versões
| |
| Há duas versões do protocolo HTTP implementadas pelos navegadores, o HTTP/1.0 e o HTTP/1.1 e ambas as versões usam como protocolo de transporte o TCP e são compatíveis entre si:
| |
| *'''HTTP/1.0''' (RFC 1945): Usa '''conexões TCP não persistentes''', isto é, a conexão TCP entre o cliente e o servidor é fechada após a transferência de cada objeto. Por exemplo, caso uma página Web seja formada por uma página base HTML e mais alguns arquivos com imagens, para cada imagem uma nova conexão TCP deverá ser aberta.
| |
| *'''HTTP/1.1''' (RFC 2068): Usa '''conexões TCP persistentes''', na qual a conexão TCP é mantida entre o cliente e o servidor, permitindo a troca de vários objetos pela mesma conexão. Para que haja conexões persistentes, tanto o cliente como o servidor devem implementar a versão HTTP/1.1 do protocolo.
| |
| | |
| ;Mensagens em formato ASCII
| |
| Uma característica importante das mensagens do Protocolo HTTP é que todas são codificadas no formato [http://pt.wikipedia.org/wiki/ASCII '''ASCII'''], ou seja, uma mensagem simples de texto.
| |
| | |
| ;Principais mensagens do [http://pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol Protocolo HTTP]:
| |
| *'''Pedido''':
| |
| GET /index.html HTTP/1.1
| |
| Host: www.exemplo.com
| |
| Connection: close
| |
| User-agent: Mozilla/4.0
| |
| Accept-language:pt
| |
| :A primeira linha apresenta o comando básico para requisição de uma página Web, seguido pela parte do URL que indica objeto que se deseja e a versão do protocolo (GET /index.html HTTP/1.1). As linhas seguintes, chamadas de cabeçalho, são opcionais. A segunda linha (Host: www.exemplo.com) indica o nome computador onde reside o objeto; a terceira linha (Connection: close) informa para fechar a conexão após envio da resposta; a quarta linha (User-agent: Mozilla/4.0) indica o tipo do agente usuário utilizado e a linha (Accept-language:pt) indica que o português é a língua preferencial. Do ponto de vista do usuário o mesmo só enxerga o endereço URL que digitou e o navegador monta e envia as mensagens HTTP de forma transparente.
| |
| | |
| POST
| |
| :Possui cabeçalho similar ao GET e mais um campo com dados, utilizados quando o cliente precisa enviar ao servidor, por exemplo, dados para o preenchimento de um formulário.
| |
| | |
| HEAD
| |
| :Requisita do servidor apenas o cabeçalho da mensagem, sem dados, usada para testes.
| |
| | |
| | |
| *'''Resposta''':
| |
| HTTP/1.1 200 OK
| |
| Connection: close
| |
| Date: Thu, 06 Aug 1998 12:00:15 GMT
| |
| Server: Apache/1.3.0 (Unix)
| |
| Last-Modified: Mon, 22 Jun 1998 09:23:24 GMT
| |
| Content-Length: 6821
| |
| Content-Type: text/html
| |
| :A primeira linha indica a versão do protocolo, o código e estado (''status'') da mensagem (HTTP/1.1 200 OK). A segunda linha (Connection: close) indica que a conexão TCP será encerrada; a terceira linha (Date: Thu, 06 Aug 1998 12:00:15 GMT) informa a data da última modificação no objeto solicitado, utilizada por servidores proxy; a quarta linha (Server: Apache/1.3.0 (Unix)) indica o tipo do servidor, a quinta linha (Content-Length: 6821) indica o tamanho do objeto em bytes e a última linha (Content-Type: text/html) informa o conteúdo da mensagem.
| |
| | |
| *Outras '''respostas''' e códigos de ''status'' comuns:
| |
| 200 OK
| |
| 301 Moved Permanently
| |
| 400 Bad Request
| |
| 404 Not Found
| |
| 505 HTTP Version Not Suported
| |
| :200 OK: requisição bem sucedida; 301 ''Moved Permanently'': objeto requisitado foi removido permanentemente; 400 ''Bad Request'': código de erro genérico indicando que o servidor não pode atender a requisição; 404 ''Not Found'': documento procurado não existe no servidor; 505 HTTP ''Version Not Suported'': versão do protocolo não suportada.
| |
|
| |
|
| ====Referências==== | | ====Referências==== |