To transfer data or (esp.) code from a far-away system (especially a larger host system) over a digital communications link to a nearby system (especially a smaller client system. Oppose upload.
Historical use of these terms was at one time associated with transfers from large timesharing machines to PCs or peripherals (download) and vice-versa (upload). The modern usage relative to the speaker (rather than as an indicator of the size and role of the machines) evolved as machine categories lost most of their former functional importance.