Digamos que eu baixe um executável como o Pycharm do Jetbrains.com. HTTP foi usado para entregar o conteúdo do site - isso também é usado quando eu baixo o arquivo? Eu li que o FTP foi usado, mas também vi que foi desativado para navegadores modernos - qual é o protocolo recomendado?
Além disso, se houver uma interrupção na rede, às vezes posso retomar o download sem perder o progresso. Isso ocorre porque uma "sessão" foi criada e posso voltar à sessão e continuar o download? O que determina quanto tempo dura esse período antes de eu ter que reiniciar o download do zero?
Veja o URL mostrado na sua lista de downloads – se diz
http://
ouhttps://
, então sim, o HTTP foi usado para baixar o arquivo.Quase todos os downloads de arquivos de sites (e mesmo a maioria dos downloads que não são de sites, como atualizações de jogos) hoje em dia são feitos via HTTP.
Não há muitas alternativas. O FTP anônimo costumava ser mais comum no passado, mas vários aspectos de seu design são problemáticos hoje em dia (o FTP na verdade é anterior ao TCP/IP da Internet), como o uso de conexões de "dados" separadas, resultando em problemas relacionados ao firewall. O NFS anônimo (WebNFS) também nunca se tornou uma coisa.
Não; o mecanismo de retomada é sem estado, assim como quase tudo sobre HTTP.
Quando você está solicitando um arquivo estático (em oposição a uma página da Web gerada dinamicamente), o navegador pode solicitar um intervalo específico em vez do arquivo inteiro. Por exemplo, se o download for interrompido após 12.300 bytes, você poderá continuar a qualquer momento incluindo um
Range: 12301-
cabeçalho.Portanto, enquanto o arquivo ainda existir, tudo o que você precisa fazer é continuar solicitando novamente o mesmo URL com um cabeçalho de intervalo apropriado adicionado. (Os navegadores também usam o cabeçalho If-Match para garantir que o arquivo não tenha sido alterado.)
Existem sites que oferecem downloads limitados a uma sessão específica (como um cookie ou um token especial incorporado na URL). Esses downloads ainda são retomados usando as mesmas solicitações de intervalo de antes – embora o servidor da Web possa decidir que sua URL expirou e impedir a continuação do download, isso não tem nada a ver com o mecanismo de retomada real.
(E, com certeza, um site pode fornecer o download inteiramente por meio de um script dinâmico. Nesse caso, cabe ao programador lidar ou não com solicitações de intervalo. Por exemplo, ao baixar uma pasta compactada do Google Drive, o arquivo .zip é gerado em movimento; mesmo seu "tamanho total" é desconhecido - neste caso, o arquivo provavelmente não será recuperável.)
A resposta curta é sim , é HTTP/HTTPS.
No entanto, gostaria de dedicar seu tempo para demonstrar por que a resposta mais longa é importante, especialmente para pessoas interessadas em tecnologia.
HTTP nada mais é do que um protocolo de transferência de arquivos. Não é especial. HTTP não pode lidar com outras coisas além de arquivos.
Imagens - são apenas arquivos. Javascript: apenas arquivos de texto. Páginas da Web: novamente, apenas arquivos de texto. Vídeos são arquivos. Mesmo os vídeos do youtube são apenas um monte de arquivos (um único vídeo do youtube é dividido em centenas de arquivos menores com cerca de 10 segundos de duração para que você possa retroceder e avançar o vídeo, os vídeos do youtube não são arquivos únicos - os downloaders de vídeo se juntarão automaticamente aos arquivos para você ao salvar).
O núcleo de como o HTTP funciona é realmente simples. Na verdade, é estupidamente simples e essa simplicidade (que todas as coisas são apenas arquivos para download) é o que tornou o HTTP bem-sucedido em comparação com os outros protocolos multimídia/interativos em rede. Arquivos, especialmente arquivos de texto, são algo que os programadores entendem.
Os bits complicados adicionados ao HTTP para tornar a Internet o que é hoje são adicionados como metadados aos "arquivos". Assim como seus arquivos em disco possuem metadados como nome do arquivo, data de criação, propriedade etc. os arquivos servidos por HTTP possuem metadados como cookies, informações de autorização, hora da última atualização etc.
Sabendo disso, você deve perceber que não há nada de mágico na web, especialmente no HTTP. Ele apenas permite que seu navegador baixe arquivos. É como seu navegador interpreta esses arquivos que adiciona a mágica. Ainda assim, um agente http não precisa ser um navegador. Você pode escrever um programa para baixar qualquer coisa disponível via HTTP, desde que saiba como criar a solicitação correta. Na verdade, a maioria das pessoas usa curl e wget para isso.