O que é um protocolo HTTP?
Da sigla Hypertext transfer protocol
Protocolo de transferencia de hipertexto
O HTTP é um protocolo de camada de aplicação
, sendo assim ele é implementado nos sofware responsavel por essa comunicação, como nos Navegadores
e Servidores WEB
HTTP não está sozinho!
o http sempre vai estrar trabalhando com mais dois protocolos, sendo eles:
TCP Transmission Control Protocol
Responsavel pela transferencia das informações
IP Protocolo IP
Um pacote IP contém os endereços IP da origem e do destino.
Request e Response (Pedido e Resposta)
Basicamente quando você abre um navegador pra acessar alguma coisa, vai estar requisitando
informações do servidor, que assim ao receber esse pedido fara o serviços internos e devolvera uma resposta
e por muitas muitas vezes essas respostas vai vir em HTML
e CSS
que ira ser interpretada no navegador o conteudo buscado.
Request
O Resquest é formado por três fatores
Que cada uma é formada por algumas informações.
1. Linha de Pedido
IDENTIFICADOR DE METODO
Basicamente é o tipo de ação que você vai esperar do servidor, existem 8 tipo, mas sendo os mais famosos oGET
oPOST
e oDELETE
URI DO RECURSO
Sendo ele o endereço, no qual será enviado o pedido, um exemplo: /index.phpVERSÃO DO PROTOCOLO
Atualmente contendo quatro versôes, sendo elas:HTTP 0.9
HTTP 1.0
HTTP 1.1
HTTP 2
2. Cabeçalho
O cabeçalho é o local para se passar informações adicionais sobre a requisição
e o servidor
, ele pode responder de modo diferente dependendo dos campos e valores contido nele.
Sendo ele dividido em três grupos
-
CABEÇALHO GERAL
-
CABEÇALHO DE REQUISIÇÃO
-
CABEÇALHO DE ENTIDADE
Campos:
A quantidade de campos que tem é muito grande, mas vou colocar aqui, os mais usado:
-
DATE
- Informa da data do envio da requisição -
CACHE-CONTROL
- Envia diretivos para o mecanismo de Cache -
TRANSFER-ENCODING
- Especidica a forma de decodificar o corpo da requisição -
COOKIE
- Envia informações sobre os Cookies -
Accept
- Especifica a preferencia de resposta -
User-Agent
- Envia informações sobre o client
3. Corpo/Mensagem
O corpo nada mais é do que os dados da sua requisição.
Exemplo:
em um envio de formulario HTML, ficaria no corpo as informações desse formulario.
Exemplo:
Mas afinal qual, qual é o formato do Resquest?
O formato do resquest ele é composto por trés unidades, sendo elas:
- Linha de estatus
- Cabeçalho
- Corpo
1. Linha de Status - Tendo trés informações.
- Versão do protocolo.
- codigo numerico do status.
- Texto Associado ao Status.
Uma das informações mais importante é:
Codigo de Status.
sendo eles:
1XX - pedido Information
serviço ainda em processo
2XX - Success
, pedido recebido com sucesso.
3XX - Redirection
Ações adicionais precisam ser realizada para terminaer o serviço
4XX - Client Error
Pedido com informações incorretas ou não existe.
5XX - Server Error
Não processou seu pedido.
Existe alguns que são muito conhecidos, portanto eles são:
- 404 - Not Found
- 301 - Moved permanently
- 500 - internal Server Error
- 200 - Ok
2. Cabeçalho
Sendo ele bem parecido com o cabeçalho do pedido, sendo assim terá informações sobre o pedido e conteudo de resposta, irei dar alguns exemplo:
Content-Type
Tipo de conteudo que foi enviado no resquest0Access-Control-Allow
indica se a resposta pode ser acessavel pela origem do pedido.Date
Data de respota que foi gerada.
3. Corpo
Basicamente a mensagem que navegador que o navegador vai interprestar, pode ser:
HTML
JSON
ou
XML
Aqui vou dar um exemplo de resposta vindo do servidor: