Upload
felippe-coelho
View
214
Download
0
Embed Size (px)
DESCRIPTION
Descrição do protocolo HTTP e Apache web server.
Citation preview
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.
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
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.
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;
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.