Como funciona o download de arquivos em navegadores?
Install Wireshark e você pode ver por si mesmo:
Wireshark - Go deep.
But quando você clica em um link como http://server:port/uri o navegador vê que ele deve usar o protocolo http para se conectar ao servidor na porta e solicitar o uri. (Se não houver nenhuma porta no link, o padrão é 80 para http.)
Inicia-se abrindo uma conexão tcp com o servidor. Então, ele envia um SYN para o servidor e espera pelo SYN/ACK, então ele envia ACK de volta e a conexão está aberta e pronta para http.
O navegador envia o pedido http:
GET uri HTTP/1.1
Host: hostname
User-Agent: nome e versão do navegador
(O hostname é necessário se vários domínios/subdomínios estiverem hospedados no mesmo servidor). O servidor responde com um cabeçalho http:
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: filesize
Date: Ter, 26 Mar 2013 09:20:42 GMT
E então o conteúdo do arquivo segue.
Os dados são divididos em pacotes pelo tcp e seu computador envia ACK para cada pacote para verificar se você o recebeu, caso contrário o servidor irá reenviar o pacote.
Seu computador irá salvá-lo em um arquivo temporário usando um nome aleatório ou irá perguntar se você quer escolher o nome e escolher o local.
(Então lá's, claro, também o IP (camada de rede) que envia/rota os pacotes tcp para o seu destino usando o endereço IP lógico, a camada datalink para os endereços reais (MAC) e finalmente como a comunicação funciona nos cabos.)
Artigos semelhantes
- Como mover arquivos do Windows 10 para outro drive (arquivos progam e arquivos de programas x86 especificamente)
- Como funciona o modo offline do Spotify? Ele faz o download dos arquivos para sua máquina?
- Como converter arquivos FLV para arquivos GIF
- Que software posso usar para abrir arquivos .exe como arquivos?