Buscar

Serviços Web - HTTP (HyperText Transfer Protocol)

Prévia do material em texto

Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
Serviços Web – HTTP 
(HyperText Transfer Protocol) 
Prof. Marcus Fábio Fontenelle, M.Sc. 
Mestre em Informática Aplicada 
LPIC-1, NCLA, MCSE 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
2 
Conceitos Básicos 
• A Web possui duas características marcantes: 
 Funciona sob demanda 
 É muitíssimo fácil de usar 
• HTTP (HyperText Transfer Protocol) é um protocolo da camada de aplicação e é 
definido pelas RFCs 1945 e 2616. 
• O HTTP é implementado como um programa cliente e outro servidor. Os dois 
programas conversam através de mensagens HTTP. 
• Uma página web (também denominada documento) é constituída de objetos. 
• Um objeto é simplesmente um arquivo (um arquivo HTML, uma imagem GIF ou 
JPEG, um applet Java, um arquivo de áudio ou um arquivo de vídeo etc) que se 
pode acessar por uma URL. 
• A maioria das páginas é constituída de um arquivo-base HTML e diversos objetos 
referenciados. 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
3 
Conceitos Básicos 
• Uma URL (Uniform Resource Locator - Localizador Uniforme de Recursos) é o 
endereço de um recurso (um arquivo, uma impressora etc.), disponível em uma 
rede; seja a Internet ou uma rede corporativa. 
• Uma URL tem a seguinte estrutura: protocolo://máquina/caminho/recurso 
• Um browser é um programa cliente para a Web; apresenta a página requisitada ao 
usuário e fornece numerosas características de navegação e de configuração. 
• Um servidor Web abriga objetos Web, cada um endereçado por um URL. 
• O HTTP usa o TCP como seu protocolo de transporte (porta 80). 
• Quando um servidor HTTP envia ao cliente os arquivos solicitados não é 
armazenada nenhuma informação de estado sobre este. 
 Como o servidor HTTP não mantém nenhuma informação sobre clientes, o 
HTTP é denominado um protocolo sem estado. 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
4 
Conexões Não Persistentes 
• Suponha que uma página consista em um arquivo-base HTML e dez imagens 
JPEG e que todos os 11 objetos residam no mesmo servidor. Suponha também 
que o URL para o arquivo-base HTTP seja 
http://www.someSchool.edu/someDepartment/home.index 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
5 
Conexões Não Persistentes 
• As etapas descritas ilustram a utilização de conexões não persistentes, nas quais 
cada conexão TCP é encerrada após o servidor enviar o objeto – a conexão não 
persiste para outros objetos. 
• Usuários podem configurar browsers modernos para controlar o grau de 
paralelismo das conexões TCP para a obtenção dos objetos. 
• Nos modos default, a maioria dos browsers abre de 5 a 10 conexões TCP 
paralelas e cada uma manipula uma transação requisição/resposta. 
• Se o usuário preferir, o número máximo de conexões paralelas pode ser fixado em 
1, caso em as conexões são estabelecidas em série. 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
6 
Conexões Persistentes 
• Em conexões persistentes, o servidor deixa a conexão TCP aberta após enviar 
resposta. Requisições e respostas subsequentes entre os mesmos cliente e 
servidor podem ser enviadas por meio da mesma conexão. 
• Normalmente, o servidor HTTP fecha uma conexão quando ela não é usada 
durante um certo tempo (um intervalo de pausa configurável). 
• Há duas versões de conexões persistentes: sem paralelismo e com paralelismo. 
• Na versão sem paralelismo, o cliente emite uma nova requisição somente quando 
a resposta anterior foi recebida. 
• O modo default do HTTP usa conexões persistentes com paralelismo. Assim, 
pode fazer requisições sequenciais para os objetos relacionados, isto é, pode fazer 
uma nova requisição antes de receber uma resposta a uma requisição anterior. 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
7 
Mensagem de Requisição HTTP 
• A primeira linha de uma mensagem de requisição HTTP é denominada linha de 
requisição; as linhas subsequentes são denominadas linhas de cabeçalho. 
• A linha de requisição tem 3 campos: método, URL e versão HTTP. O campo método 
pode assumir os valores GET, POST e HEAD. 
• A linha de cabeçalho HOST especifica o hospedeiro no qual o objeto reside. 
• A linha de cabeçalho CONNECTION especifica se o servidor usará conexões 
persistentes ou não persistentes. 
• A linha de cabeçalho USER-AGENT especifica o tipo de browser que está fazendo a 
requisição ao servidor. 
• A linha de cabeçalho ACCEPT-LANGUAGE mostra que o usuário prefere receber uma 
versão do objeto em francês. Se o objeto não existir na versão solicitada o servidor 
envia a versão default. 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
8 
Mensagem de Resposta HTTP 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
9 
Mensagem de Resposta HTTP 
• Possui 3 seções: uma linha inicial, a linha de estado, seis linhas de cabeçalho e o 
corpo da entidade. 
• A linha de estado tem 3 campos: versão do HTTP, código de estado e uma 
mensagem de estado correspondente. 
• A linha de cabeçalho CONNECTION especifica se o servidor irá fechar ou não a 
conexão após enviar a mensagem. 
• A linha de cabeçalho DATE especifica a hora e a data em que a resposta HTTP foi 
criada e enviada pelo servidor. 
• A linha de cabeçalho SERVER especifica em qual servidor a mensagem de resposta 
foi gerada. 
• A linha de cabeçalho LAST-MODIFIED especifica a hora e a data em que o objeto 
foi criado ou sofreu a última alteração. 
• A linha de cabeçalho CONTENT-LENGTH especifica a quantidade de bytes do 
objeto que está sendo enviado. 
• A linha de cabeçalho CONTENT-TYPE especifica o tipo de objeto está presente no 
corpo da mensagem. 
Prof. Marcus Fábio, M.Sc 
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 
Referências Bibliográficas 
• Redes de Computadores e a Internet, James Kurose, 5ª Edição – 
Seção 2.2 
• Interligação de Redes com TCP/IP, Douglas Comer, 5ª Edição – 
Cap. 27 
• Sistemas Distribuídos – Conceitos e Projeto, George Coulouris et. 
al., 4ª Edição – Cap. 19 
• Sistemas Distribuídos – Princípios e Paradigmas, Andrew 
Tanenbaum, 2ª Edição – Cap. 12 
• Biblioteca Virtual Estácio 
10

Continue navegando