Escolar Documentos
Profissional Documentos
Cultura Documentos
● POST: Utilizado para submeter dados para serem processados (por exemplo, de um
formulário HTML) para o recurso especificado. Os dados submetidos com o método
POST podem resultar na criação de um novo recurso ou na modificação de um
existente.
● 3xx - Redirecionamentos:
○ 301 Moved Permanently: O recurso solicitado foi movido permanentemente
para uma nova URL.
○ 302 Found: O recurso solicitado foi temporariamente movido para uma nova
URL.
○ 304 Not Modified: O recurso não foi modificado desde a última solicitação do
cliente.
3) Qual a diferença entre HTTP persistente com paralelismo e HTTP persistente sem
paralelismo? Qual dos dois é usado pelo HTTP 1.1 ?
No HTTP persistente com paralelismo, o cliente pode enviar várias solicitações em rápida
sucessão, sem esperar por uma resposta após cada solicitação. Isso é alcançado abrindo
várias conexões TCP paralelas entre o cliente e o servidor, ou utilizando o pipelining em
uma única conexão TCP, onde o cliente envia várias solicitações em sequência antes de
receber as respostas correspondentes. O paralelismo permite uma utilização mais eficiente
da conexão, reduzindo ainda mais o tempo total necessário para processar várias
solicitações e respostas.
O HTTP 1.1 utiliza conexões persistentes por padrão, o que significa que a conexão TCP
entre o cliente e o servidor permanece aberta após uma solicitação/resposta, a menos que
seja explicitamente fechada por um dos lados. No entanto, o HTTP 1.1 não especifica o uso
obrigatório de paralelismo. Embora o HTTP 1.1 introduza a capacidade de pipelining (enviar
várias solicitações sem esperar por cada resposta correspondente), essa funcionalidade
apresentou problemas práticos relacionados à ordem de resposta e ao gerenciamento de
erros, fazendo com que não fosse amplamente adotada ou recomendada na prática.
a. Falsa. Para uma página Web que consiste em texto e duas imagens, o cliente
normalmente enviará uma mensagem de requisição HTTP para o HTML da página e, após
processar o HTML e descobrir as imagens necessárias, enviará requisições HTTP
adicionais para cada imagem. Assim, para essa página, o cliente enviaria três mensagens
de requisição (uma para o HTML e uma para cada imagem) e receberia três mensagens de
resposta (uma resposta para cada requisição). Portanto, o cliente envia uma requisição para
cada recurso necessário, não apenas uma para todos os recursos.
b. Verdadeira. Duas páginas Web distintas podem ser enviadas pela mesma conexão
persistente HTTP. O HTTP 1.1, que utiliza conexões persistentes por padrão, permite que
múltiplas requisições e respostas HTTP sejam enviadas através da mesma conexão TCP
para melhorar a eficiência, reduzindo a necessidade de abrir novas conexões para cada
recurso solicitado. Isso é particularmente útil para recursos hospedados no mesmo domínio,
como é o caso do exemplo dado.
c. Falsa. Com conexões não persistentes (também conhecidas como conexões "fechar após
cada resposta"), cada conexão TCP é usada para enviar uma única requisição e receber
uma única resposta. Após a resposta ser recebida, a conexão é fechada. Portanto, não é
possível que um único segmento TCP transporte duas mensagens de requisição HTTP, já
que cada requisição/resposta requer sua própria conexão TCP em um modelo de conexão
não persistente.
d. Falsa. O cabeçalho Date: na mensagem de resposta HTTP indica a data e a hora em que
a mensagem de resposta foi gerada pelo servidor, não a última vez que o objeto de
resposta foi modificado. O cabeçalho que indica a última vez que o objeto foi modificado é o
Last-Modified:. O cabeçalho Date: serve para outros propósitos, como sincronização de
tempo e validação de cache, mas não informa diretamente sobre a última modificação do
recurso solicitado.
Os números de portas são divididos em três faixas: as portas bem conhecidas (0-1023), as
portas registradas (1024-49151) e as portas dinâmicas ou privadas (49152-65535). Segue a
lista de alguns dos números de portas para protocolos padronizados mais conhecidos
conforme definido pela Internet Assigned Numbers Authority (IANA).
7) Qual a quantidade típica de conexões TCP paralelas que são abertas pelos
browsers?
Quando o HTTP/1.1 foi amplamente adotado, a maioria dos navegadores limitava o número
de conexões TCP paralelas por domínio a cerca de 6 a 8. Esse limite era uma melhoria em
relação ao HTTP/1.0, que não tinha conexões persistentes por padrão, e ajudava a
equilibrar a eficiência do carregamento da página com a justiça no uso dos recursos do
servidor e da rede.
Na prática, o número exato de conexões TCP que um navegador abre pode depender de
vários fatores, incluindo:
● Políticas específicas do navegador: Diferentes navegadores podem implementar
diferentes limites de conexão e políticas de gerenciamento de conexões.
● Restrições do servidor: Alguns servidores podem limitar o número de conexões
simultâneas de um único cliente.
● Condições da rede: As condições de rede entre o cliente e o servidor podem
influenciar o gerenciamento de conexões.
● Conteúdo da página da web: Páginas da web que requerem recursos de múltiplos
domínios (como CDN, serviços de terceiros) podem levar a um número maior de
conexões TCP simultâneas, cada uma para um domínio diferente.
Para requisição de páginas web, o protocolo HTTP (Hypertext Transfer Protocol) define um
conjunto de métodos de requisição (ou "verbos"), cada um indicando uma ação diferente
que deve ser realizada no recurso especificado. Métodos estes já descritos na primeira
questão e que são definidos na especificação do protocolo HTTP, sendo a versão mais
recente detalhada no HTTP/1.1 e aprimorada no HTTP/2. Cada método serve a um
propósito específico na comunicação web, permitindo a realização de diferentes tipos de
operações em recursos na internet.
O tamanho das mensagens recebidas pelo protocolo HTTP pode variar significativamente
dependendo do conteúdo da mensagem e do recurso solicitado. Não existe um "tamanho
típico" fixo para mensagens HTTP, pois elas podem conter uma ampla gama de dados,
desde uma simples página HTML de texto até arquivos grandes, como vídeos ou pacotes
de software. Aqui estão alguns fatores que influenciam o tamanho das mensagens HTTP:
● Cabeçalhos HTTP
As mensagens HTTP incluem cabeçalhos que fornecem metadados sobre a requisição ou a
resposta. Os cabeçalhos podem variar em número e tamanho, incluindo informações como
tipo de conteúdo, codificação, cookies, e instruções de cache. Em geral, os cabeçalhos de
uma mensagem HTTP podem variar de algumas centenas de bytes a vários kilobytes,
dependendo da complexidade da requisição ou resposta e da quantidade de metadados
transmitidos.
● Corpo da Mensagem
O corpo da mensagem HTTP, que contém os dados reais do recurso solicitado (por
exemplo, HTML, JSON, imagens, vídeos), pode variar de zero bytes (como em algumas
respostas GET ou HEAD, onde o corpo está vazio) a vários gigabytes para grandes
transferências de arquivos. Para páginas web típicas, o corpo da resposta pode variar de
alguns kilobytes a vários megabytes, incluindo HTML, CSS, JavaScript e outros recursos
incorporados, como imagens.
● Tipos de Conteúdo
O tipo de conteúdo solicitado afeta significativamente o tamanho da mensagem HTTP:
○ Páginas HTML podem variar de alguns KB a centenas de KB.
○ Imagens e arquivos multimídia (como vídeos) podem variar de pequenos KB
para imagens otimizadas para a web até vários MB ou até GB para vídeos de
alta qualidade.
○ APIs REST que retornam dados em formatos JSON ou XML geralmente
produzem mensagens na faixa de KB a MB, dependendo da quantidade de
dados solicitados.
● Compressão
Muitos servidores e clientes HTTP suportam compressão de dados (por exemplo, gzip ou
deflate) para reduzir o tamanho das mensagens transmitidas. A compressão pode diminuir
significativamente o tamanho do corpo da mensagem, especialmente para textos e marcas
de linguagem (como HTML, CSS e JavaScript), tornando o tamanho da mensagem
transmitida menor do que o tamanho do recurso original não comprimido.
Portanto, o tamanho das mensagens recebidas pelo protocolo HTTP varia amplamente com
base no tipo de conteúdo solicitado, na presença e tamanho dos cabeçalhos HTTP, e na
aplicação de técnicas de compressão. Isso reflete a flexibilidade do protocolo HTTP em lidar
com uma ampla gama de necessidades de comunicação na web.
O protocolo HTTP define uma série de cabeçalhos que podem ser usados nas mensagens
de requisição e resposta para fornecer informações sobre a transação HTTP. Aqui estão 20
campos de cabeçalho padrão e suas funções básicas:
1. Host: Especifica o domínio e a porta (opcional) para a qual a requisição está sendo
enviada. É obrigatório em requisições HTTP/1.1.
3. Accept: Indica os tipos de mídia que o cliente está disposto a receber, como text/html
ou image/jpeg.
15. Expires: Uma data/hora após a qual a resposta é considerada obsoleta, indicando ao
cliente quando um novo recurso deve ser solicitado.
16. If-Modified-Since: Permite uma requisição condicional para um recurso que só será
enviado se o recurso foi modificado desde a data especificada.
17. Location: Indica a URL para a qual uma requisição deve ser redirecionada. É usado
em respostas com códigos de status de redirecionamento, como 301 ou 302.
18. Referer: Indica a URL da página anterior que linkou para a página atual, útil para
análises da web e rastreamento de referência.
19. Server: Fornece informações sobre o software do servidor que está lidando com a
requisição.
Estes campos de cabeçalho permitem uma comunicação detalhada e eficaz entre o cliente
e o servidor no protocolo HTTP, controlando aspectos como autenticação, negociação de
conteúdo, gerenciamento de estado e cache.
11) Qual a importância de um Proxy/Cache em uma estrutura de rede?
● Balanceamento de Carga
Em ambientes com múltiplos servidores, um proxy pode distribuir as solicitações dos
clientes entre vários servidores, equilibrando a carga de trabalho e melhorando a
disponibilidade e a redundância. Isso ajuda a evitar que qualquer servidor único se torne um
ponto de sobrecarga, garantindo uma experiência de usuário mais consistente e confiável.
● Anonimato e Privacidade
Um servidor proxy pode ocultar o endereço IP real do cliente, fazendo com que as
solicitações ao servidor de destino pareçam originar do proxy. Isso pode ser usado para
aumentar a privacidade dos usuários ou para contornar restrições baseadas em
geolocalização, permitindo o acesso a conteúdo que de outra forma estaria bloqueado.
● Segurança
Além de filtrar conteúdo, um proxy pode oferecer recursos de segurança adicionais, como a
inspeção de conteúdo para identificar e bloquear malware ou ataques de phishing. Ao
examinar o tráfego que passa através dele, um servidor proxy pode atuar como uma
barreira entre a rede interna e ameaças externas.
Um proxy atua como intermediário entre um cliente (por exemplo, um navegador da web) e
um servidor de destino (por exemplo, um servidor web). Quando um cliente faz uma
requisição através de um proxy, este último encaminha a requisição ao servidor de destino
em nome do cliente. Da mesma forma, quando o servidor de destino responde, o proxy
encaminha a resposta de volta ao cliente. Os proxies podem servir a vários propósitos,
incluindo:
Cache, por outro lado, é uma técnica utilizada para armazenar temporariamente cópias de
conteúdo frequentemente acessado para acelerar o acesso subsequente a esse conteúdo.
Quando um conteúdo é solicitado pela primeira vez, ele é armazenado (ou "cacheado")
localmente. Se o mesmo conteúdo for solicitado novamente, ele pode ser entregue
rapidamente a partir do armazenamento local (cache), sem a necessidade de buscar
novamente o conteúdo no servidor de origem. Isso reduz a latência, diminui a carga nos
servidores de origem e economiza largura de banda. O caching pode ser realizado em
vários níveis, incluindo:
● Squid
○ Vantagens:
■ Flexibilidade: Squid oferece uma ampla gama de configurações e é
capaz de lidar tanto com caching quanto com proxy reverso. Isso
permite uma implementação personalizada baseada em
necessidades específicas.
■ Controle de Acesso: Possui recursos avançados de controle de
acesso, permitindo aos administradores definir regras detalhadas
sobre quem pode acessar quais recursos na internet.
■ Compatibilidade: Funciona em muitos sistemas operacionais,
incluindo Linux, Windows e UNIX, tornando-o uma solução versátil
para diversos ambientes.
■ Redução de Latência e Economia de Largura de Banda: Como
qualquer sistema de cache eficaz, ajuda a reduzir a latência de
acesso a recursos frequentemente solicitados e economizar largura
de banda.
○ Desvantagens:
■ Complexidade de Configuração: A flexibilidade do Squid pode ser
uma desvantagem para alguns, pois sua configuração pode ser
complexa e exigir uma curva de aprendizado acentuada.
■ Desempenho com Conteúdo Dinâmico: Embora seja eficaz no
caching de conteúdo estático, o Squid pode não ser a melhor opção
para sites com conteúdo altamente dinâmico sem ajustes e
configurações adicionais.
● Varnish
○ Vantagens:
■ Alto Desempenho: Varnish é conhecido por seu alto desempenho,
especialmente em sites com tráfego elevado. Ele é capaz de servir
conteúdo extremamente rápido, graças ao seu armazenamento em
memória.
■ Flexibilidade com VCL: A Varnish Configuration Language (VCL)
permite aos usuários escrever regras de caching muito detalhadas,
tornando o Varnish extremamente flexível e poderoso para manipular
como o conteúdo é cacheado e servido.
■ Suporte a Conteúdo Dinâmico: Com sua capacidade de tratar
diferentes tipos de conteúdo e sua flexibilidade através da VCL, o
Varnish pode ser otimizado para lidar eficientemente com o caching
de conteúdo dinâmico.
○ Desvantagens:
■ Complexidade: Assim como o Squid, a flexibilidade e o poder do
Varnish podem tornar sua configuração complexa, exigindo
conhecimento técnico aprofundado para otimizar totalmente o
desempenho.
■ Armazenamento Principalmente em Memória: Enquanto armazenar
dados em memória permite acesso rápido ao conteúdo, isso também
significa que o Varnish pode exigir uma quantidade significativa de
RAM, o que pode aumentar os custos operacionais para servidores
com grande volume de dados cacheados.
As políticas de substituição de cache são algoritmos utilizados para decidir quais itens
devem ser removidos do cache quando é necessário espaço para novos itens. Essas
políticas são cruciais para o desempenho do cache, pois influenciam diretamente a
eficiência do cache em termos de taxa de acertos (hits) e falhas (misses). Aqui estão cinco
políticas de substituição de cache comumente usadas:
Cada uma dessas políticas de substituição tem seus próprios prós e contras, e a escolha
entre elas depende das características específicas do aplicativo e dos padrões de acesso
aos dados. Considerações incluem a previsibilidade do acesso aos dados, os recursos do
sistema disponíveis e o impacto da substituição de cache no desempenho geral do
aplicativo.
Configurar um servidor DNS em uma rede corporativa com uma distribuição Linux envolve
essencialmente quatro grandes etapas, realizadas de maneira abstrata e sem entrar nos
detalhes técnicos ou comandos específicos:
3. Criar e Configurar Arquivos de Zona: Para cada zona definida, crie um arquivo de
zona correspondente. Esses arquivos contêm registros DNS específicos que
mapeiam nomes de domínio para endereços IP, subdomínios e outras informações
necessárias para a resolução de nomes dentro do domínio.
No Brasil, o registro de nomes de domínio sob o ccTLD (Country Code Top Level Domain)
".br" é administrado pelo NIC.br (Núcleo de Informação e Coordenação do Ponto BR). O
NIC.br é uma entidade civil sem fins lucrativos que implementa as decisões e projetos do
Comitê Gestor da Internet no Brasil (CGI.br), incluindo a manutenção dos registros de
domínios ".br" e a alocação de espaço de endereçamento IP no país.
Quanto ao domínio genérico ".com", ele é administrado por várias empresas de registro
acreditadas pela ICANN (Internet Corporation for Assigned Names and Numbers), uma
organização sem fins lucrativos responsável pela coordenação global do sistema de
identificação único da internet, incluindo nomes de domínio. A VeriSign, por exemplo, é a
principal entidade responsável pela operação dos servidores de nomes de domínio ".com".
No modo ler-e-apagar, depois que o usuário baixa as mensagens para o seu cliente de
email local (como Microsoft Outlook, Mozilla Thunderbird, etc.), essas mensagens são
removidas do servidor de email. Este modo é útil para usuários que acessam seu email de
um único dispositivo e querem economizar espaço no servidor de email, garantindo que
suas caixas de entrada não fiquem cheias. No entanto, se o usuário tentar acessar o email
de um dispositivo diferente, as mensagens previamente baixadas não estarão disponíveis,
já que foram apagadas do servidor.
● Para o modo ler-e-apagar, o cliente de email emite o comando DELE para o servidor
POP3 para cada mensagem após o download, indicando que a mensagem deve ser
marcada para exclusão no servidor.
● Para o modo ler-e-guardar, o cliente simplesmente não emite o comando DELE após
o download das mensagens, deixando-as intactas no servidor.
Essa flexibilidade permite que os usuários configurem seu acesso ao email de acordo com
suas necessidades de mobilidade e armazenamento, mas também requer que eles
gerenciem ativamente seu espaço de armazenamento no servidor de email para evitar
atingir limites de capacidade.