Two computers, one conversation
Every website involves at least two computers talking to each other. Your browser, the client, and a computer somewhere else holding the website's files, the server. When you type a web address, your browser asks that server for a page, and the server sends one back.
That's it. Everything else in web development is detail on top of that one exchange.
What actually gets sent back
Three kinds of files do almost all the work.
HTML is the content and structure: headings, paragraphs, images, buttons. Think of it as the skeleton, what exists on the page and in what order.
CSS is the appearance: colors, spacing, fonts, layout. The same HTML skeleton can look completely different depending on the CSS applied to it.
JavaScript is the behavior: what happens when you click something, type something, or scroll. Without it, a page is a static document. With it, a page can react to you.
Static vs dynamic
A static site sends the exact same HTML to every visitor, generated once and stored as-is. A dynamic site builds the HTML fresh for each visitor, often pulling in data specific to them, like their name or their order history, from a database.
Most real business sites are dynamic somewhere, even if most of the pages are effectively static. A pricing page can be static. A logged-in dashboard cannot.
Why this matters before you write a line of code
Every tool you will learn next fits into one of these three boxes: HTML, CSS, JavaScript, or the server-side logic connecting them to data. When something breaks later, the first useful question is always "which of these is actually failing?" That question only works if this model is solid first.