6
HTTP O protocolo HTTP (Hyper Text Transfer Protocol) é um protocolo que opera na camada de aplicação e é utilizado em sistemas distribuídos, colaborativos e de hipermídia. Em 1990 foi disponibilizada sua primeira versão HTTP/0.9 que foi utilizado como um protocolo simples para transferência de dados brutos pela internet. Dentre suas características, estão: Protocolo utilizado para transferência de informações na web, onde o TCP é utilizado para transporte. Sua interação consiste em um pedido ASCII, seguido de uma resposta MIME (Multipurpose Internet Mail Extensions). O MIME é uma forma padrão de envio de mensagens de diferentes tipos e codificações. A versão HTTP/1.0 aprimorou as capacidades do protocolo por permitir a transferência de mensagens no formato MIME, onde contem metadados e modificadores em solicitações e respostas, porem não suporta caching, proxies hierárquicos, conexões persistentes ou hosts virtuais. Para atender as necessidades carentes da versão HTTP/1.0 e também a novos requisitos como buscas, atualizações de front-end, a versão HTTP/1.1 foi criadas e trouxe novos recursos como um conjunto de métodos e cabeçalhos que indicam a finalidade da solicitação. As mensagens são passadas em um formato parecido ao das mensagens de e-mail, utilizando o formato MIME.

Servidor Web

Embed Size (px)

DESCRIPTION

Descrição do protocolo HTTP e Apache web server.

Citation preview

Page 1: Servidor Web

HTTP

O protocolo HTTP (Hyper Text Transfer Protocol) é um protocolo que

opera na camada de aplicação e é utilizado em sistemas distribuídos,

colaborativos e de hipermídia. Em 1990 foi disponibilizada sua primeira versão

HTTP/0.9 que foi utilizado como um protocolo simples para transferência de

dados brutos pela internet. Dentre suas características, estão:

Protocolo utilizado para transferência de informações na web, onde o

TCP é utilizado para transporte.

Sua interação consiste em um pedido ASCII, seguido de uma resposta

MIME (Multipurpose Internet Mail Extensions). O MIME é uma forma

padrão de envio de mensagens de diferentes tipos e codificações.

A versão HTTP/1.0 aprimorou as capacidades do protocolo por permitir a

transferência de mensagens no formato MIME, onde contem metadados e

modificadores em solicitações e respostas, porem não suporta caching, proxies

hierárquicos, conexões persistentes ou hosts virtuais.

Para atender as necessidades carentes da versão HTTP/1.0 e também a

novos requisitos como buscas, atualizações de front-end, a versão HTTP/1.1

foi criadas e trouxe novos recursos como um conjunto de métodos e

cabeçalhos que indicam a finalidade da solicitação. As mensagens são

passadas em um formato parecido ao das mensagens de e-mail, utilizando o

formato MIME.

Pedido de requisição

O protocolo HTTP opera enviando requisições de pedido/resposta. O

cliente envia ao servidor um pedido na forma de um método de requisição, URL

(Universal Resourse Identifiers), versão do protocolo e uma mensagem em

formato tipo MIME contendo modificadores de requisição, informações do

cliente e conteúdo. As requisições do tipo simples incluem:

Pedido: GET e a página desejada sem a versão do produto.

Resposta: pagina sem cabeçalho, MIME e codificação.

Page 2: Servidor Web

A resposta do servidor é enviada com uma linha de status que inclui a

versão do protocolo, um código de sucesso ou erro seguido de uma mensagem

do tipo MIME, onde incluem informações do servidor, metadados e o corpo da

mensagem. Dentre as requisições completas, estão:

Pedido: versão do protocolo, comando (método utilizado). Pagina

desejada, versão do protocolo e cabeçalhos.

Reposta: pagina com cabeçalho

Reposta com código de três dígitos:

1xx: informação.

2xx: sucesso.

3xx: redirecionamento.

4xx: erro Cliente.

5xx: erro Servidor.

Quando um pedido é enviado, uma resposta é retornada contendo um

código e o conteúdo solicitado, o código retornado pode indicar sucesso ou

fracasso da operação. A tabela 01 mostra os códigos possíveis:

Tabela 01 – Códigos HTTPFonte: Autor

Page 3: Servidor Web

Métodos

Os métodos são utilizados para solicitações de paginas web e para o

envio de informações inseridas pelos usuários das paginas. Os seguintes

métodos são utilizados:

GET: pedido para ler uma pagina.

HEAD: pedido para ler o cabeçalho de uma página web.

PUT: pedido para gravar uma pagina web.

POST: inserção de um recurso.

DELETE: remove uma pagina web.

LINK / UNLINK – Conecta /: quebra a conexão existente entre dois

recursos.

SERVIDOR WEB APACHE

O servidor web Apache, em novembro de 2011 possuía 65% do

percentual de sites ativos na internet (conforme pesquisa realizada pela

Netcraft Web Server Survey). O Apache é um software de código aberto, e

possui os principais recursos utilizados, como:

Autenticação: texto plano ou criptografado (HMAC).

Criptografia: SSL e TLS.

Domínio virtual.

Conteúdo dinâmico: cgi-bin, Servlet, SSI, PHP, entre outros.

Módulos: capacidade de carregar módulos sob demanda.

Compressão de conteúdo: economia de largura de banda.

Limitação de usuários e/ou largura de banda.

Modo de execução: espaço de usuário.

Conforme Lobo (2013), o Apache é o servidor padrão da internet e

suporta todos os recursos anteriormente mencionados e utilizados pela maioria

dos sites na internet, isso mantendo a compatibilidade com os protocolos

padrão da internet, como o HTTP/1.1. Algumas características descrevem as

vantagens do Apache:

Instalação simples.

Page 4: Servidor Web

Daemon que escuta solicitações nas portas 80 (http) e 443 (https), ou

qualquer porta acima de 1024.

Somente o usuário root pode executar o para o servidor.

Mantem vários processos em execução, com múltiplos threads em cada

um.

Múltiplos processos: estabilidade

Múltiplos threads: maior capacidade em atender solicitações,

consumindo menos recursos.

Lobo (2013) descreve que a instalação do servidor web Apache é

relativamente simples, onde pode ser instalado a partir de pacotes prontos ou

ser compilado durante o processo de instalação. O daemon do Apache deve

ser ativado para que o servidor web possa entrar em execução e somente o

root tem permissão para realizar esta função. O daemon executa algumas

tarefas iniciais, como ativar os arquivos de log e em seguida ativar os

processos filhos, que atenderão às solicitações do clientes. O processo

principal httpd é executado como root, enquanto os demais são executados

com privilégios menores. O Apache possui dois tipos de módulos: módulos

core, de multiprocessamento e demais módulos.

Módulos core e multiprocessamento

Lobo (2013) core são recursos sempre disponíveis para suporte a

múltiplos módulos de multiprocessamento, inclusive para diversos Sistemas

Operacionais, outros módulos.

mod_auth_basic e mod_auth_digest: autenticação simples e md5;

mod_cache: cache de conteudo baseado em uri.

mod_ccgid: execução de scripts cgi;

mod_dbd: controla conexões com bancos de dados sql;

mod_filter: permite configuração contextualizada de filtro de conteúdo;

mod_headers: permite a reconfiguração de cabeçalhos;

Page 5: Servidor Web

mod_proxy: implementa um proxy ou gateway para o servidor apache;

mod_proxy_balancer: permite operações de balanceamento de carga;

mod_ssl: suporte à criptografia ssl e tls.

LOBO, Eduardo, at al. Adminstração de sistema Linux: serviços para internet.

2ª Ed. - Rio de Janeiro: RNP/ESR, 2013.