Usually both have similar behaviors when rendered in the browser.
If I open an HTML with this:
<input type="text" value="tente me alterar" disabled>
<input type="text" value="tente me alterar" readonly>
Both do not allow the user to change the text, see the example below:
<input type="text" value="tente me alterar" disabled>
<input type="text" value="tente me alterar" readonly>
So what's the difference between the two types of states, and when should I use each of them?