по первому тегу браузер должен понимать, что он будет загружать файл по указанной ссылке.
Но на самом деле это зависит от того, какой ответ отдаст web-сервер.
Он может так отдать файл, как содержимое, которое браузер должен открыть в свое окне, а не скачать.
Но как понять web-серверу, что клиент именно жмакнул по ссылке, чтобы скачать файл?
Вот, к примеру, запросы которые приходят в web-сервер
GET / HTTP/1.1..Accept: text/html, application/xhtml+xml, */*..
GET /www/files/file.txt HTTP/1.1..Accept: text/html, application/xhtml+xml, */*..
первый это просто запрос страницы по умолчанию
Второй это по ссылке <a download href= ...> или <a href= ...>
как видим второй запрос не отличается от того, жмем ли мы по ссылке, чтобы открыть ее или скачать файл.
Как быть?
Неужели парсить подстроку идущую после GET /www/files/file.txt на предмет поиска расширения файла.
И к примеру если хвост будет не .htm или .html или другое предопределенное расширение, то значит считать, что пришел запрос на загрузку файла?
Как-то неудобно...
Не могли что ли изобретатели html в запрос встроить ключевые слова...