Before you launch a personal site or small project, you will encounter two related but distinct concepts: the domain name and the full URL. Confusing them or misreading their parts can lead to broken links and unclear communication with collaborators. This article uses one hypothetical address to show how each piece works and how you can keep a clear record of your own.
What Domain Names and Full URLs Each Answer
Suppose you are planning a small personal project and you sketch out an address like https://example.org/notes/first-page?view=compact#intro. This is a hypothetical string used purely for reading practice throughout this article; the page does not exist and has never been published. Looking at it, you can already see two different questions being answered. The domain name, example.org, answers the question “which server or site am I reaching?” Domain names provide a human-readable address for any web server available on the Internet, replacing numeric IP addresses that computers handle easily but people find hard to remember.1
The full URL, on the other hand, answers a more specific question: “which exact resource on that server do I want?” A URL is the address of a unique resource on the internet, and it is one of the key mechanisms used by browsers to retrieve published resources such as HTML pages, images, or stylesheets. So the domain name gets you to the right building, while the complete URL tells you which room, which shelf, and which page of the book you are looking for.2
For a first-time site builder, this distinction matters because you will often need to communicate just the domain when talking about your site in general, but you will need the full URL when sharing a specific page or troubleshooting a broken link. Keeping these two roles separate in your mind prevents a common early mistake: pasting a long, parameter-filled URL when someone simply asks for your site address.
Reading the Example Address Part by Part
Now let us mark each component of our hypothetical address. The string begins with https, which is the scheme. It tells the browser which protocol to use when requesting the resource. Next comes example.org, which is the domain name identifying the web server. After the domain comes the path, /notes/first-page, which points to a specific resource on that server. The question mark introduces the query string, view=compact, which provides extra parameters to the server. Finally, the hash sign introduces the fragment identifier, intro, which acts as a bookmark inside the resource itself.2
Two punctuation marks serve as critical boundaries here. The question mark always signals the start of the query portion, and the hash sign always signals the start of the fragment. Everything between the question mark and the hash is query data; everything after the hash is fragment data. If you see a URL with neither symbol, it contains only a scheme, a domain, and a path. Recognizing these boundaries lets you quickly identify which part of an address you need to change or share.2
It is worth noting that the fragment portion is never sent to the server with the request; it only tells the browser where to scroll within the already-loaded document. This means two URLs that differ only in their fragment point to the same server-side resource but direct the browser to different spots on the page. For your own record-keeping, noting whether a link includes a fragment helps you understand whether you are referencing the whole page or a specific section.2
Comparing Variations While Keeping the Host Fixed
To sharpen your reading skills, keep the host part of our example unchanged and swap only the path. Compare https://example.org/notes/first-page with https://example.org/notes/second-page. The domain and scheme are identical, so both addresses reach the same server. Only the path differs, meaning each one points to a different resource on that server. You can observe this without knowing anything about how the server is configured; the string itself tells you the destination resource has changed.
Next, keep the path the same and change the query string. Compare ?view=compact with ?view=full. The domain, scheme, and path remain identical, so you are still asking the same server for the same base resource. The query string simply provides different parameters. What the server actually does with those parameters depends entirely on its own logic, which you cannot determine from the URL string alone. All you can say from reading the address is that different instructions are being passed along.
Finally, change only the fragment. Compare #intro with #summary. The server receives an identical request in both cases because fragments are never transmitted. The difference is purely a browser-side instruction about where to display the content. This observation is useful when debugging: if two links load the same page but land at different positions, the fragment is the likely explanation. None of these comparisons require you to guess server behavior; you are simply reading what the string structure tells you.
Building an Address Description Card
Write a short description card for your hypothetical project address. The card should record three things: the purpose of the page, the complete URL string, and a labeled breakdown of each part. For our example, the purpose might be “a compact reading view of the first note, scrolled to the introduction section.” The complete string is https://example.org/notes/first-page?view=compact#intro. The breakdown lists scheme as https, domain as example.org, path as /notes/first-page, query as view=compact, and fragment as intro.
Record the card in whatever format suits your workflow: a plain text file, a spreadsheet row, or a note in your project documentation tool. The format does not matter as long as each part is labeled separately rather than buried in a single unbroken string. This habit pays off when you later need to explain an address to a collaborator, file a bug report, or update a link in your content.
If your project will have multiple pages, create one card per address. Over time, this collection becomes a quick reference that shows you which paths exist, what query patterns you use, and whether any fragments need updating after content changes. The effort per card is small, but the accumulated clarity saves you from guessing later.
Verifying the Card by Hand
Check your description card against the actual URL string by copying the address into a plain text editor and inserting a line break before each boundary character. Place one break after the scheme and its separator, one after the domain, one before the question mark, and one before the hash sign. You should end up with four or five short lines, each containing exactly one component. Compare each line to the corresponding label on your card.
Use this moment to look for common transcription errors: a missing slash at the start of the path, an accidental space inside the query string, or a fragment identifier that does not match the heading you intended to reference. These small mistakes are easy to introduce when copying by hand and hard to spot when the address is displayed as a single unbroken line.
Record any corrections directly on the card rather than in a separate note. Keeping the verified version in one place means you always have a trusted reference. If you later change the address, update the card and repeat the line-break check. This routine takes only a minute per address but prevents the slow accumulation of stale or mistyped references across a project.
Keeping the Record for Future Use
Store your collection of address cards somewhere you will naturally revisit: a project README, a shared document, or a dedicated notes folder. The goal is not to build a database but to have a human-readable summary that you or a collaborator can scan in seconds. When someone asks “what is the link to that page?” you can answer from the card without hunting through browser history or source files.
As your project grows, you may choose to add a short note to each card explaining why a particular query parameter or fragment exists. For example, noting that view=compact is used for a mobile-friendly layout gives future you a reason to keep or remove that parameter. These annotations are entirely your own organizational choices; there is no required format beyond clarity.
Over time, this practice builds a lightweight map of your site’s address structure. You will find it easier to spot redundancy, notice when two cards describe nearly identical destinations, or identify pages that lack a clear purpose statement. The habit costs very little per page and compounds as the site grows, giving you a reliable foundation for communication, troubleshooting, and future planning.
Frequently asked questions
Is the fragment part of a URL sent to the server?
No. The fragment identifier, which appears after the hash sign, is never sent to the server with the request. It only instructs the browser to scroll to a specific location within the already-loaded document.2
What is the difference between a domain name and a full URL?
A domain name identifies which server or site you are reaching. A full URL extends that by adding a path, and optionally a query string and fragment, to specify the exact resource and position within that site.12
Does changing the query string always change what the server returns?
Not necessarily. The query string passes parameters to the server, but what the server does with them depends on its own logic. From the URL string alone you can only observe that different parameters are being requested, not predict the outcome.
What is a Domain Name? - Learn web development | MDN. Retrieved 2026-11-01. ↩︎ ↩︎
What is a URL? - Learn web development | MDN. Retrieved 2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎