O protocolo HTTP/1.1 é definido pelo RFC 2616 (agora principalmente obsoleto pelo RFC 7230-7235). É um protocolo baseado em texto que usa um modelo cliente-servidor em que um cliente (como um navegador da Web) inicia uma solicitação a um servidor (como um servidor da web). Aqui está um colapso de suas principais características:
Recursos -chave: *
cliente-servidor: Um cliente inicia a comunicação enviando uma solicitação para um servidor. O servidor responde à solicitação.
*
Solicitação-resposta: A comunicação é baseada em um ciclo de solicitação-resposta. Cada solicitação do cliente gera uma única resposta do servidor.
*
apátrida: Cada solicitação é independente de solicitações anteriores. O servidor não mantém informações sobre interações anteriores com o cliente. (As sessões são gerenciadas por mecanismos como cookies, não inerentes ao próprio protocolo.)
*
Gerenciamento de conexão: O HTTP/1.1 apresenta conexões persistentes (Keep-Alive). Isso permite que várias solicitações e respostas sejam enviadas por uma única conexão TCP, melhorando a eficiência. O cabeçalho `conexão 'determina se a conexão deve ser mantida viva após uma resposta. Se não for especificado, o comportamento padrão depende da configuração do servidor, mas geralmente é manter a conexão viva.
* Cache
: O HTTP/1.1 suporta mecanismos de cache para melhorar o desempenho. As respostas podem incluir cabeçalhos que indicam se e como eles podem ser armazenados em cache.
*
cabeçalhos: Solicitações e respostas incluem cabeçalhos que fornecem metadados, como tipo de conteúdo, comprimento, data e muito mais. Cabeçalhos são pares de valor-chave.
* Métodos
: O HTTP define vários métodos (verbos) para especificar o tipo de solicitação, incluindo:obter, postar, colocar, excluir, cabeça, opções, etc.
*
Códigos de status: O servidor responde com um código de status de três dígitos indicando o resultado da solicitação (por exemplo, 200 OK, 404 não encontrado, 500 erros do servidor interno).
*
Conteúdo: A resposta normalmente inclui o conteúdo solicitado (por exemplo, uma página HTML, uma imagem, dados JSON).
Estrutura de um pedido: `` `
Método /caminho HTTP /1.1
Host:exemplo.com
Agente de usuário:mozilla/5.0 ...
Aceitar:texto/html, aplicativo/xhtml+xml, ...
Conexão:Keep-alive
... outros cabeçalhos ...
[Solicitar corpo (opcional)]
`` `
Estrutura de uma resposta: `` `
Http/1.1 200 ok
Data:Ter, 29 de novembro de 2023 16:03:22 GMT
Servidor:Apache/2.4.54
Tipo de conteúdo:texto/html; charset =utf-8
Comprimento de conteúdo:1234
Conexão:Keep-alive
... outros cabeçalhos ...
[Corpo de resposta]
`` `
limitações de http/1.1: *
Bloqueio da linha de linha: Como as solicitações são enviadas sequencialmente sobre uma única conexão, um recurso de carregamento lento pode bloquear solicitações subsequentes, impactando o desempenho. Esta é uma desvantagem significativa, abordada por protocolos posteriores como HTTP/2 e HTTP/3.
*
Sobrecarga: A natureza baseada em texto e os cabeçalhos detalhados adicionam algumas despesas gerais em comparação aos protocolos binários mais novos.
HTTP/1.1 melhorou significativamente o seu antecessor, HTTP/1.0, mas suas limitações abriram o caminho para o desenvolvimento de protocolos mais eficientes como HTTP/2 e HTTP/3. O entendimento do HTTP/1.1 ainda é valioso, no entanto, como muitos sistemas ainda o usam, e entender seus princípios é crucial para entender a evolução da Web.