ПРИМЕЧАНИЕ: @ Джон-Инь ответ более уместен, учитывая изменения в спецификациях.
Да. Существует различие между src и href, и их нельзя использовать взаимозаменяемо. Мы используем src для замененных элементов, а href - для установления связи между ссылочным документом и внешним ресурсом.
Атрибут href (Hypertext Reference) указывает местоположение веб-ресурса, определяя таким образом ссылку или взаимосвязь между текущим элементом (в случае привязки a) или текущим документом (в случае link) и целевым якорем или ресурсом, определенными этим атрибутом. Когда мы пишем:
<link href="style.css" rel="stylesheet" />
Браузер понимает, что этот ресурс является таблицей стилей и обработкасинтаксический анализ страницы не приостанавливается (рендеринг может быть приостановлен, поскольку браузеру нужны правила стилей для рисования и визуализации страницы). Это не похоже на сброс содержимого файла CSS внутри styleтега. (Следовательно, желательно использовать, linkа не @importприкреплять таблицы стилей к вашему HTML-документу.)
Атрибут src (Source) просто внедряет ресурс в текущий документ в месте определения элемента. Например, Когда браузер находит
<script src="script.js"></script>
Загрузка и обработка страницы приостанавливается до тех пор, пока браузер не извлечет, не скомпилирует и не выполнит файл. Это похоже на сброс содержимого файла js внутри scriptтега. Похожий случай с imgтегом. Это пустой тег, и содержимое, которое должно входить в него, определяется srcатрибутом. Браузер приостанавливает загрузку, пока не получит и не загрузит изображение. [так обстоит дело с iframe]
По этой причине рекомендуется загружать все файлы JavaScript внизу (перед </body>тегом).
обновление : см. ответ @ John-Yin для получения дополнительной информации о том, как это реализовано в соответствии со спецификациями HTML 5.