Escolar Documentos
Profissional Documentos
Cultura Documentos
Tomando como referência o RFC 2616 (HTTP 1.1), responda às seguintes perguntas:
a) Explique o propósito de cada um dos métodos que podem ser usados em requisições
do HTTP 1.1. Resposta baseada na referência [1]
OPTIONS: é o método que representa um pedido de informações sobre as opções de
comunicação disponíveis nas solicitações/respostas.
HEAD: é idêntico ao GET, exceto que o servidor não deve retornar o corpo da mensagem e sim
a 'meta-informação' contida no HTTP, ou seja,
POST: O método HTTP POST normalmente é usado ao criar um recurso quando a URL do
recurso final não for conhecida. Ele não é protegido e não é inalterável;
PUT: método normalmente utilizado para atualizar recursos ou para criar uma nova entidade
em uma URL conhecida.;
DELETE: comando solicita que o servidor de origem exclua determinado recurso identificado.
Infelizmente o cliente tem garantia de que a operação foi efetuada, mesmo se o código de
status retornado do servidor de origem indica que a ação foi concluída com êxito;
TRACE: é utilizado como um controle remoto de verificação que volta a mensagem solicitada.
Ele permite ao cliente ver o que está sendo recebido na outra extremidade do pedido e utilizar
esses dados para testes de diagnóstico ou informação;
CONNECT: comando reservado para realização de conexão com servidores (podendo ser
proxy, tunnel, etc).
(Tomando como base que o aluno tenha conhecimento da definição de ‘conexões persistentes’
no HTTP 1.1)
Servidores geralmente têm algum valor de tempo limite para o qual eles deixarão uma conexão
ativa. Os servidores proxy podem alterar este para um valor mais alto, pois é provável que o
cliente estará fazendo mais conexões através do mesmo servidor. O uso de conexões
persistentes não exige um tamanho ou a existencia do limite de tempo para o cliente ou para o
servidor.
Quando um cliente ou servidor deseja finalizar a conexão ele deve emitir uma mensagem para
isto. Clientes e servidores devem ambos constantemente prestar atenção ‘um para o outro’ a
fim de responder a ele conforme o caso. Se um cliente ou servidor não detecta o outro lado
poderia causar uma drenagem de recursos desnecessários na rede.
Um cliente, servidor ou proxy pode fechar a conexão de transporte a qualquer momento. Por
exemplo, um cliente pode ter começado a enviar um novo pedido ao mesmo tempo que o
servidor decidiu fechar a conexão. Do ponto de vista do servidor, a conexão está sendo
fechada , enquanto ele estava inativo, mas do ponto de vista do cliente, uma solicitação está
em andamento.
Isto significa que os clientes, servidores e procuradores devem ser capazes de recuperar de
eventos assíncronas. Software cliente deve reabrir a conexão de transporte e retransmitir a
seqüência abortada de pedidos sem interação do usuário, desde que a sequência do pedido é
idempotente*. Os métodos não idempotentes não deve ser repetida automaticamente, embora
os agentes possam oferecer um operador humano a escolha de repetir o pedido(s).
Confirmação de software cliente com a compreensão semântica da aplicação pode substituir a
confirmação do usuário. A repetição automática não deve ser repetida se a segunda seqüência
de solicitações de falhar.
Os servidores devem sempre responder a pelo menos um pedido por conexão, se possível .
Servidores não devem fechar a conexão enquanto transmitem uma resposta, a menos que se
suspeita de uma rede ou cliente que perdeu conexão.
Os clientes que usam conexões persistentes devem limitar o número de conexões simultâneas
que eles mantenham a um determinado servidor. Um cliente de um único usuário não deve
manter mais de duas conexões com qualquer servidor ou proxy. A procuração deve usar até 2
conexões*N para outro servidor ou proxy, onde N é o número de usuários ativos
simultaneamente. Estas diretrizes são destinadas a melhorar os tempos de resposta HTTP e
evitar congestionamento.
*idempotente: é a propriedade que algumas operações têm de poderem ser aplicadas várias
vezes sem que o valor do resultado se altere após a aplicação inicial.