HTTP: HTTP (HyperTextTransferProtocol) HTTP é um protocolo (protocol) que permite a obtenção de recursos, como documentos HTML. É a base de qualquer troca de dados na Web e um protocolo cliente-servidor, o que significa que as requisições são iniciadas pelo destinatário, geralmente um navegador da Web. Um documento completo é reconstruído a partir dos diferentes sub-documentos obtidos, como por exemplo texto, descrição do layout, imagens, vídeos, scripts e muito mais. IP é o protocolo responsável pelas informações sairem do navegador e ir até o servidor e trazer a informação. HTTP é como se fosse o caminho. O IP não sabe como organizar as informações, ele apenas vai buscar a lançar as informações pedidas. Ele quebra as informações em vários pacotes e entrega, podendo estar fora de ordem. O TCP é o protocolo responsável por fazer as informações, pacotes web chegarem organizadas, tudo corretamente. Camadas web (tem 7 camadas, método OSI, mas essas 4 são as mais importantes) Aplicação => Tem HTTP, SMTP, FTP, DHCP... software em si. Aqui é a parte do programa. Do Transporte => Responsável de como as informações serão enviadas pelo cliente ao servidor e vice versa. tem TCP, UDP. UDP embora mais rápido, não se preocupa de como a ordem dos pacotes chega. Rede => É o protocolo IP. Hardware => As informações pedidas recebidas através dos cabos físicos. Exemplo exato da sequência de como a navegação é feita. Servidor O servidor está processando várias informações, páginas ao mesmo tempo. Como ele vai saber corretamente o que enviar o que você está pedindo? Através da portas! Cara quadradinho do servidos representa uma porta tem porta 21, 25, 80...). O TCP geralmente usa a porta 80. Digamos que o pedido de informação chegue na porta 80, como o servidos sabe o que fazer, o que passar? O HTTP tem regras, linguagem. Os programas mais comuns que entendem HTTP no servidor são: NGINX, APACHE, TOMCAT, NODE... Exemplo de como tudo é feito. No final as informações são enviadas para o navegador pelo caminho HTTP. Protocolo HTTP em detalhes https://www.youtube.com/watch?v=d_5iZJ8p9x8&list=PLbA-jMwv0cuUp3UKlLHn g6E-xgD037bXz&index=2 HTTP é um protocolo de pedido e resposta: Linha de pedido: São os métodos. A ação. GET: Quando se quer pegar algum recurso, alguma informação, pode ser pagina HTML, info de API. EX: pegar dados de um cliente cadastrado em um site. POST: É como se fosse o envio da informação. EX: você termina de fazer o seu cadastro e clina e enviar. PUT: É quando se vai tipo editar uma info. EX: Editar seu cadastro em um site. DELETE: Deletar infos PATCH: Quando você quer apenas fazer uma edição expecífica. EX: apenas o email do usuário. editar OPTIONS: Manda uma pergunta antes pra ver se vai conseguir fazer tal operação. EX: Você quer usar o delete para excluir o cadastro e você pergunta se possível. HEAD: Só quando você quer retornar os meta dados, o rodapé da parada e não a página inteira. TRACE: Saber se as ininformações pedidas, cabeçalhos, get, post... chegaram exatamento do jeito que você pediu. Exemplo completo: Exemplo completo. Recurso é o / que mostra a raiz da parada Cabeçalhos gerais: Date: Data, hora, momento que você fez a requisição. Cache-Control: Controla o cache da página (você já sabe o que é cache). ... Exemplo Completo: Cabeçalhos de pedido: Accept: Preferência de qual material se quer. Se é um json, uma pagina html, image... Accept-Language: Qual a linguagem de preferência (idioma mesmo). Quem fez o pedido, quem autorizou, o usuário principal, referência do pedido, de ond evem o pedido... Autoricação: Pode ser um método de entrada, tipo um token, uma senha... Cabeçahos condicionais que são passados ao servidr. Desde quando foi modificado, if combina...(tipo se senha e login combina com o que o usuário cadastrou)... O host é obrigado a passar. Se é da globo, do google, do amazon... Exemplo completo: Cabeçalhos de entidade: Content-Type: Informa que tipo de conteúdo está sendo enviado para servidor. json, html, video... Mensagem final com as info's no sistema. -- Resposta(response) : Linha de status: Lista de estatus http: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status Cabeçalhos gerais: mesma coisa acima. Cabeçalhos de resposta: Entidade recurso: Mesmas de cima. Exemplo completo: Exemplo no sistema: