Грубо говоря: файл с расширением .html содержит html код, код написанный на языке гипертекстовой, который представляет собой набор так называемых тегов; файл с расширением .php содержит код языка php, который в отличие от html, является именно языком программирования. Такой файл (с расширение .php) может содержать как html, так и php код.
Для чего это нужно?
Всё просто. Сайт нельзя написать без использования html, такой сайт будет работать, более того, работать он может даже без php, но это будет не совсем полноценный сайт, так как там не будет взаимодействия с базой данных, не будет никакой логики, не будет никакой защиты. В общем, это будет чисто картинка, набор каких-то элементов, с которыми сделать ничего нельзя будет, если только не залезть в сам html код и там, через текстовый редактор, его не отредактировать