ПРИМІТКА: @ Джон-Інь відповідь більш доцільна з огляду на зміни в специфікаціях.
Так. Існує різниця між 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>тегом)
оновлення : див. відповідь на Джон-Інь для отримання додаткової інформації про те, як вона реалізована відповідно до специфікацій HTML 5.