O que é o protocolo de transferência de hipertexto (HTTP)?
O HTTP é um protocolo utilizado para a transmissão de dados através da Internet. É a base de qualquer troca de dados na Web e permite a recuperação de páginas HTML, imagens, vídeos e outros recursos. O HTTP funciona num modelo cliente-servidor, em que o cliente envia um pedido ao servidor e o servidor responde com os dados solicitados.
Como é que o HTTP funciona?
Quando escreve um localizador uniforme de recursos (URL) no seu navegador Web e prime enter, o seu navegador envia um pedido HTTP para o servidor que aloja o sítio Web. O pedido é composto por um método (como GET ou POST), o URL do recurso e cabeçalhos opcionais. O servidor processa o pedido e envia uma resposta HTTP, que inclui um código de estado que indica o êxito ou o fracasso do pedido, juntamente com os dados solicitados ou uma mensagem de erro.
Quais são os métodos HTTP mais comuns?
Existem vários métodos HTTP, mas os mais utilizados são:
- GET:Recupera dados do servidor.
- POST:Envia dados para o servidor para criar um novo recurso.
- PUT:Actualiza um recurso existente no servidor.
- DELETE:Remove um recurso do servidor.
- HEAD:Recupera apenas os cabeçalhos de uma resposta, sem os dados reais.
- PATCH:Actualiza parcialmente um recurso existente.
Qual é a diferença entre o HTTP e o protocolo de transferência de hipertexto seguro (HTTPS)?
O HTTP e o HTTPS funcionam com os mesmos princípios básicos, mas o HTTPS acrescenta uma camada extra de segurança. O "S" em HTTPS significa Secure (seguro) e utiliza encriptação para garantir que os dados transmitidos entre o cliente e o servidor não podem ser interceptados ou adulterados por agentes maliciosos. O HTTPS é frequentemente utilizado para transacções sensíveis, tais como operações bancárias em linha ou comércio eletrónico.
O que são cabeçalhos HTTP?
Os cabeçalhos HTTP são peças adicionais de informação enviadas juntamente com um pedido ou resposta HTTP. Fornecem metadados importantes sobre o pedido ou a resposta e ajudam tanto o cliente como o servidor a compreender como tratar os dados. Os cabeçalhos podem incluir informações como o tipo de conteúdo, directivas de controlo da cache, cookies e muito mais.
O HTTP pode ser utilizado para comunicação em tempo real?
Embora o HTTP não tenha sido originalmente concebido para comunicação em tempo real, pode ser utilizado para determinados tipos de aplicações em tempo real. Por exemplo, técnicas como polling longo ou eventos enviados pelo servidor podem simular a comunicação em tempo real através do HTTP. No entanto, para aplicações em tempo real mais exigentes, outros protocolos como WebSockets são frequentemente preferidos devido à sua menor latência e capacidades bidireccionais.
O que é o armazenamento em cache no HTTP?
O armazenamento em cache em HTTP refere-se ao processo de armazenamento de uma cópia de uma página Web ou de um recurso no lado do cliente (browser ou servidor proxy) para reduzir a utilização da largura de banda e melhorar o desempenho, servindo o conteúdo em cache em vez de efetuar um novo pedido ao servidor.
Como é que o armazenamento em cache funciona em HTTP?
O armazenamento em cache em HTTP permite o armazenamento temporário de recursos no lado do cliente ou em servidores intermediários. Quando um cliente efectua um pedido de um recurso, o servidor pode incluir instruções de armazenamento em cache nos cabeçalhos de resposta. Da próxima vez que o mesmo recurso for solicitado, o cliente pode utilizar a versão em cache em vez de efetuar um novo pedido ao servidor. Isto reduz o tráfego de rede e melhora o desempenho.
Posso utilizar o HTTP para transferir ficheiros?
Sim, o HTTP pode ser utilizado para transferir ficheiros, mas não é o método mais eficiente para transferências de ficheiros de grandes dimensões. Embora os ficheiros pequenos possam ser facilmente transferidos utilizando HTTP, os ficheiros maiores podem levar a velocidades de transferência mais lentas e a potenciais tempos limite. Para transferências de ficheiros eficientes, são frequentemente utilizados protocolos como o protocolo de transferência de ficheiros (FTP) ou protocolos de transferência de ficheiros especializados como o protocolo de cópia segura (SCP) ou o protocolo de transferência de ficheiros SSH (SFTP).
Os pedidos e respostas HTTP podem conter outros dados para além de HTML?
Sim, os pedidos e respostas HTTP podem transportar vários tipos de dados para além de HTML. O HTTP é um protocolo flexível que pode transmitir uma vasta gama de tipos de conteúdo, incluindo imagens, vídeos, JSON, XML, texto simples, entre outros. O tipo de conteúdo dos dados que estão a ser transferidos é especificado no cabeçalho "Content-Type", permitindo que o cliente e o servidor comuniquem e interpretem os dados corretamente.
O que são cookies no contexto do HTTP?
Os cookies são pequenos fragmentos de dados armazenados no lado do cliente por um navegador Web. São utilizados pelos sítios Web para armazenar informações sobre a atividade ou as preferências de navegação de um utilizador. Quando uma resposta HTTP inclui um cabeçalho "Set-Cookie", o browser guarda o cookie e envia-o de volta com os pedidos subsequentes ao mesmo sítio Web. Os cookies permitem experiências personalizadas, gestão de sessões e acompanhamento do comportamento do utilizador.
O HTTP suporta a autenticação?
Sim, o HTTP suporta mecanismos de autenticação através da utilização de cabeçalhos. O método mais comum é a Autenticação Básica HTTP, em que o cliente inclui um cabeçalho "Autorização" no pedido, contendo um nome de utilizador e uma palavra-passe codificados em Base64. No entanto, a Autenticação Básica HTTP não é segura para transmitir informações sensíveis, pelo que outros métodos como o OAuth ou a autenticação baseada em token são frequentemente utilizados em aplicações Web modernas.
O HTTP pode ser utilizado para transmissão em tempo real?
O HTTP não foi originalmente concebido para transmissão em tempo real devido à sua natureza de pedido-resposta. No entanto, técnicas como o HTTP live streaming (HLS) e o dynamic adaptive streaming over HTTP (DASH) foram desenvolvidas para permitir o streaming de vídeo em HTTP. Estes protocolos segmentam o conteúdo de vídeo em pequenas partes que podem ser entregues através de pedidos HTTP normais, permitindo experiências de transmissão mais suaves.
Qual é o papel dos códigos de estado no HTTP?
Os códigos de estado são números de três dígitos enviados pelo servidor como parte de uma resposta HTTP. Indicam o resultado do pedido e ajudam o cliente a compreender como deve tratar a resposta. Alguns códigos de estado comuns incluem:
- 200 OK: O pedido foi bem sucedido.
- 404 Não encontrado: O recurso solicitado não pôde ser encontrado.
- 500 Internal Server Error: Ocorreu um erro inesperado no servidor.
Os códigos de estado são essenciais para a resolução de problemas, tratamento de erros e comunicação entre clientes e servidores.
Qual é o papel do localizador uniforme de recursos (URL) no HTTP?
O URL funciona como um endereço que identifica a localização de um recurso na Web. Num pedido HTTP, o URL especifica o recurso específico que o cliente pretende obter ou com o qual pretende interagir. É constituído por vários componentes, tais como o protocolo (http://), o nome de domínio, o caminho, os parâmetros de consulta e o identificador de fragmento. O URL desempenha um papel crucial na determinação do destino de um pedido HTTP.
Como é que o HTTP lida com o redireccionamento?
O HTTP suporta o redireccionamento através de códigos de estado que começam por "3" (por exemplo, 301, 302). Quando um servidor envia uma resposta de redireccionamento, inclui um cabeçalho "Location" que contém o localizador uniforme de recursos (URL) para o qual o cliente deve ser redireccionado. O browser do cliente efectua então automaticamente um novo pedido para o URL fornecido. O redireccionamento é normalmente utilizado quando um recurso foi movido ou quando um sítio Web pretende direcionar os utilizadores para uma página diferente.