A Visualforce page consists of Visualforce tags, HTML, JavaScript, and other code within an <apex:page> tag. The markup defines the user interface components and their appearance. A Visualforce controller specifies what happens when a user interacts with components, provides data to display, and modifies behavior. Custom components encapsulate common design patterns that can be reused across Visualforce pages. Force.com Sites utilize Visualforce to build and deploy custom user interfaces accessible via unique domains or branded domains.