O Hypertext Transfer Protocol (HTTP) é a base da comunicação de dados para a World Wide Web. Ele define como as mensagens são formatadas e transmitidas e como os servidores web e navegadores respondem a vários comandos. O HTTP opera sobre TCP/IP, normalmente usando a porta 80 para conexões não criptografadas e a porta 443 para conexões criptografadas (HTTPS). Ele permite que clientes (como navegadores da Web) solicitem recursos (como documentos HTML, imagens ou scripts) de servidores da Web e recebam respostas que incluem o conteúdo solicitado junto com informações de status.
O protocolo HTTP funciona passo a passo por meio de uma série de interações entre um cliente (por exemplo, um navegador da web) e um servidor (por exemplo, um servidor da web). O processo começa quando o cliente envia uma mensagem de solicitação HTTP ao servidor. Esta solicitação especifica o recurso (por exemplo, uma URL de página da Web) que o cliente deseja acessar e pode incluir cabeçalhos adicionais que fornecem informações sobre o cliente ou parâmetros de solicitação. O servidor então processa a solicitação, recupera o recurso solicitado e constrói uma mensagem de resposta HTTP contendo os dados do recurso junto com metadados como códigos de status (por exemplo, 200 OK ou 404 Not Found).
Um site HTTP opera servindo conteúdo e recursos a clientes (navegadores da web) que se conectam a ele usando protocolos HTTP ou HTTPS. Quando um usuário insere o URL de um site em um navegador, o navegador envia uma solicitação HTTP ao servidor web que hospeda o site. O servidor responde enviando de volta documentos HTML, imagens, scripts, folhas de estilo e outros recursos necessários para renderizar a página da web no navegador do usuário. Este processo envolve múltiplas solicitações e respostas HTTP para cada elemento que compõe a página web, garantindo que todo o conteúdo necessário seja entregue e exibido corretamente.
As conexões HTTP funcionam estabelecendo uma conexão TCP entre o cliente e o servidor. O cliente inicia a conexão enviando um pacote TCP SYN ao servidor, que responde com um pacote SYN-ACK. Uma vez estabelecida a conexão, as mensagens HTTP (solicitações e respostas) são transmitidas através desta conexão TCP. Após a transmissão dos dados necessários, a conexão poderá ser encerrada por qualquer uma das partes ou mantida aberta para solicitações subsequentes, dependendo da versão HTTP e das configurações do servidor/cliente.
Uma solicitação HTTP começa quando um cliente (por exemplo, um navegador da web) envia um método HTTP (por exemplo, GET, POST, PUT) junto com uma URL (Uniform Resource Locator) para um servidor. Este método de solicitação especifica a ação que o cliente deseja que o servidor execute no recurso especificado. Além disso, a solicitação pode incluir cabeçalhos que fornecem informações adicionais sobre a solicitação, como o tipo de conteúdo que o cliente pode aceitar ou credenciais de autenticação. Depois que o servidor recebe a solicitação, ele a processa com base no método e URL especificados, recupera o recurso solicitado e prepara uma resposta HTTP para enviar de volta ao cliente.