Baixe o app para aproveitar ainda mais
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
Compartilhar