Dlaczego formularze internetowe ASP.NET potrzebują atrybutu Runat = „Server”?

Dlaczego muszę określać runat="server"we wszystkich moich kontrolkach ASP.NET, gdy jest to atrybut obowiązkowy i serverjest to jedyna dostępna opcja w mojej ograniczonej wiedzy o ASP.NET, a jeśli go nie używam, pojawia się błąd? Rozumiem, że opcjonalnie mogę go używać w tagach HTML i rozumiem...