This has two purposes. First, it allows symbols used in HTML to appear in the rendered document. There are a small number of predefined HTML entities. Tags take to forms - those that indicate the start of something, and those that indicate the end of something. Upper and lower case are ignored in tag and attribute identifiers but not in attribute values.
File names can include periods.
To ensure that URLs with strange characters are transmitted accross the Internet correctly the characters in the URL are encoded as strings of one or three characters. The wise author either lets the browser or user select the default colors for the body, or specifies a complete set of attributes. Notice that a significant number of people can not tell Red from Green and so these colors are problematic. The red , green , and blue numbers get smaller the color gets darker. This fails to express a complicated set of rules about what elements can, can not, or should not appear nested inside other elements.