The main difference is that HtmlControls provides only a way to address part of the page during the page loop, while WebControls have state.
In your example, if you assign a value to a Label tag, it will be stored in PostBacks.
In my experience it is much better to use HtmlControls, if possible, they are much lighter and they do not populate your ViewState. Use WebControls when you need them to be functional.
For example, you can use a shortcut for the page title because you can only assign a value once (usually in Page_OnLoad inside the if (!IsPostBack) ). You might want to use the HTML range to provide some feedback on the status (for example, when the status is updated with each postback).
source share