Este material faz parte da série “Introdução ao Desenvolvimento Empresarial”. Artigos anteriores:
Olá! Hoje entenderemos os protocolos HTTP e HTTPS. Mas primeiro vamos esclarecer um ponto: estamos falando de protocolos de transferência de dados pela rede na camada de aplicação do modelo OSI. Como você se lembra, discutimos o modelo OSI em um dos artigos anteriores. E se você não lembra, aqui está .
É importante notar imediatamente que o protocolo HTTP consiste apenas em texto. Bem, estamos mais interessados na estrutura em que este texto está localizado. Cada mensagem consiste em três partes:
O que é um protocolo de transferência de dados
Este é o nome dado ao acordo geralmente aceito, graças ao qual desenvolvedores de diversos serviços enviam informações em um único formulário. Por exemplo, usando o Google Chrome, você pode obter informações do Facebook e do Twitter, porque os desenvolvedores as transmitem usando o protocolo HTTP padrão e seu navegador pode processá-las. As regras uniformes também são muito convenientes para os próprios desenvolvedores do lado do servidor: existem muitas bibliotecas que podem converter informações para você e enviá-las usando o protocolo necessário. O HTTP foi originalmente concebido como um protocolo para transferência de páginas HTML. Esse foi o caso por muito tempo, mas agora os programadores costumam transferir strings e arquivos de mídia por meio dele. No geral, este protocolo é versátil e flexível e muito fácil de usar. Agora vamos descobrir como fazer isso.
Estrutura HTTP
É importante notar imediatamente que o protocolo HTTP consiste apenas em texto. Bem, estamos mais interessados na estrutura em que este texto está localizado. Cada mensagem consiste em três partes:
- Linha inicial — define os dados do serviço.
- Cabeçalhos – descrição dos parâmetros da mensagem.
- Corpo da mensagem (Body) - dados da mensagem. Devem ser separados dos títulos por uma linha em branco.
Qual é a aparência de uma solicitação HTTP simples
GET / HTTP/1.1
Host: javarush.com
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
A linha inicial contém:
- GET - método de solicitação;
- / — caminho de solicitação (caminho);
- HTTP/1.1 – versão do protocolo de transferência de dados.
- Host — o host ao qual a solicitação é endereçada;
- User-Agent é o cliente que envia a solicitação.
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com
{
"Id": 12345,
"User": "John"
}
A solicitação é enviada para javarush.com/user/create/json, a versão do protocolo é HTTP/1.1. Accept especifica qual formato de resposta o cliente espera receber, Content-Type especifica em qual formato o corpo da mensagem é enviado. Content-Length - o número de caracteres no corpo. Uma solicitação HTTP pode conter muitos cabeçalhos diferentes. Mais detalhes podem ser encontrados na especificação do protocolo .
Respostas HTTP
Após receber a solicitação, o servidor a processa e envia uma resposta ao cliente:HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
A linha inicial na resposta contém a versão do protocolo (HTTP/1.1), Código de Status (200), Descrição do Status (OK). Os títulos indicam o tipo e a extensão do conteúdo. O corpo da resposta contém o código HTML que o navegador desenhará na página HTML.
Códigos de status de resposta
Tudo fica claro com o corpo e os cabeçalhos da mensagem, mas vale a pena dizer algumas palavras sobre os códigos de status. Os códigos de status de resposta têm sempre três dígitos e o primeiro dígito do código indica a categoria da resposta:- 1xx - informativo. A solicitação foi recebida, o servidor está pronto para continuar;
- 2xx - bem sucedido. A solicitação foi recebida, compreendida e processada;
- 3xx - redirecionamento. As seguintes etapas devem ser executadas para processar a solicitação;
- 4xx - erro do cliente. A solicitação contém erros ou não está de acordo com o protocolo;
- 5xx - erro do servidor. O servidor não conseguiu processar a solicitação, embora ela tenha sido composta corretamente;
- 200 OK — a solicitação foi recebida e processada com sucesso;
- 201 Criado — a solicitação foi recebida e processada com sucesso, resultando na criação de um novo recurso ou de sua instância;
- 301 Movido Permanentemente - o recurso solicitado foi movido permanentemente e as solicitações subsequentes a ele deverão ocorrer no novo endereço;
- 307 Redirecionamento Temporário - o recurso foi movido temporariamente. Por enquanto, você pode acessá-lo usando redirecionamento automático;
- 403 Proibido – o pedido é claro, mas é necessária autorização;
- 404 Not Found - o servidor não encontrou o recurso neste endereço;
- 501 Não Implementado – o servidor não suporta funcionalidade para responder a esta solicitação;
- 505 Versão HTTP não suportada - o servidor não suporta a versão especificada do protocolo HTTP.
GO TO FULL VERSION