HTTP e HTTPS são protocolos cliente-servidor baseados em pedido e resposta responsáveis por comunicar e transferir dados no www. Neste modelo de cliente-servidor, o cliente é normalmente o browser, enquanto o servidor pode ser uma aplicação que gere o website. O cliente envia um pedido HTTPS para o servidor, e o servidor, que armazena os dados (texto, imagem, html ficheiros, etc.), envia uma resposta de volta ao cliente. A resposta contém sempre informação sobre a execução do pedido e, normalmente, o conteúdo solicitado.
No exemplo acima, o browser é normalmente um típico agente usuário. Qualquer software que pode processar e apresentar os dados na internet é um agente usuário. Isto pode também incluir aplicações móveis ou robôs de motores de pesquisa que rastreiam constantemente a web.
O protocolo HTTP encontra-se na camada de aplicação do modelo TCP/IP e, por isso, necessita de um protocolo fiável da camada de transporte para funcionar, em que na maioria dos casos é o TCP. Em adição, o TCP, HTTP pode utilizar outros protocolos para o transporte, como o não fiável UDP ou SSDP. Recursos HTTP podem ser acedidos utilizando URLs. A etiqueta HTTP ou HTTPS no início de um URL indica qual o protocolo que a página web utiliza.
O URL, os documentos HTML e as ligações formam uma rede de dados interligados na Internet.
Os pedidos HTTP são estruturados da seguinte forma:
- Linha de pedido, esta linha contém o comando, que na versão
1.1 do HTTP pode ser GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE e CONNECT, dependendo do que se pretende. Se quiser abrir uma imagem, a linha tem o seguinte aspeto: GET /images example.jpg HTTP /1.1
- A linha de pedido é seguida pelos cabeçalhos, onde pode refinar ainda mais o pedido. Por exemplo: Accept-Language: en, ou seja, a resposta é solicitada em inglês.
- O cabeçalho é seguido por uma linha em branco.
- Por fim, existe uma parte da mensagem, que pode ser omitida se assim pretender.
A resposta HTTP é a seguinte:
- Informação sobre o preenchimento, por exemplo: http/1.1 200 OK, então o pedido foi bem-sucedido.
- Segue-se o cabeçalho da resposta.
- Segue-se uma linha em branco.
- Por fim, uma parte opcional da mensagem.
O HTTPS difere do HTTP porque é baseado no protocolo de encriptação SSL/TLS. Normalmente, HTTPS é utilizado para websites que precisam de uma palavra-passe para iniciar sessão, ou para websites onde são realizadas transações financeiras. Os browsers sabem que um site é de confiança pois os servidores web que utilizam HTTPS devem obter um certificado de uma autoridade de certificação fiável (VeriSign, Microsoft, etc.). Uma vez confirmado, os browsers vão também indicar na barra de endereço que o site é confiável utilizando https.