Uma transação HTTP consiste em uma solicitação e uma resposta. A solicitação pode especificar mais do que apenas o nome do arquivo, mas também certas características da resposta.
As características geralmente suportadas incluem idioma, tipo de documento (por exemplo, um arquivo de música versus arquivo de texto simples), codificação de caracteres e (importante) o intervalo de bytes.
Por exemplo, se um download for interrompido em 500 KB em um download de 1 MB, o IDM especificará que deseja apenas bytes de 501 KB a 1 MB quando retomar o download de uma URL diferente, ignorando a parte já baixada.
Isso também permite que o IDM (e outras ferramentas) usem várias conexões para baixar um arquivo. Por exemplo, três conexões fariam três solicitações independentes: uma para o primeiro terço do arquivo, uma para o terço intermediário e uma para o terço final. Em alguns casos, isso pode ser mais rápido do que usar apenas uma conexão para o arquivo inteiro.
Se o servidor não puder ou não desejar fornecer as características solicitadas em sua resposta, ele retornará uma resposta de erro (por exemplo, Requested range not satisfiable
). Nesse caso, o IDM teria que baixar novamente o arquivo inteiro em uma única conexão.