When we look at a website, we see content. If we look at the source HTML of the same web page, we see tags like `<p>` or `<img src>` that format the content. Whichever one we view, the document itself is the same.
What if we applied object-oriented thinking to this document? It's not like one header is different from another, except in the content it contains. The header is just a container for data. That is what the DOM, or Document Object Model, does. It represents a document as a tree of objects and nodes, which allows the document to be manipulated with any programming language. Without the DOM, programs wouldn't understand the document structure, and couldn't act upon them.
DOM grew out of Dynamic HTML in the early 2000s, and sought to solve problems with standardization while providing more dynamic web sites.
The DOM identifies:
The DOM represents a website as a tree of objects and nodes, and there is some specialized nomenclature to learn before interacting with a DOM. Here are some of the DOM data types.