ID е уникално име , което не може да се повтаря. Примерно id="header" - не може да се повтаря. Класовете class="box" могат да се повтарят. Ид-то се използва принципно когато имаш някакво javascript нещо. Какво имам в предвид , много по бързо се намира елемент с ид , отколкото елемент с клас(става дума за самата работа на javascript-a)
Аз примерно ползвам ид-та за главните елементи, за да ги разпознавам, а класове за другите. Както казва @tedo класовете се повтарят.