Before a website goes live, you will encounter two related but distinct concepts: the domain name and the full URL. Confusing them can lead to miscommunication with collaborators or mistakes in documentation. This article uses one hypothetical address to show what each term covers and how to keep a clear record of both.
What a Domain Name Tells You and What a Full URL Adds
Suppose you are planning a small personal project and you sketch out an address like https://example.org/notes/first-page?view=compact#intro on a sticky note. This string is purely hypothetical; no such page is assumed to exist or to be live anywhere. It serves only as a sample we can take apart. The first thing to notice is that the string contains more information than a domain name alone would carry.
A domain name identifies a web server on the Internet in a form that people can read and remember. As MDN explains, domain names provide a human-readable address for any web server available on the Internet, solving the problem that raw IP addresses are hard to recall and may change over time. In our example, the domain name portion is example.org. It answers the question: which server am I trying to reach?1
A full URL goes further. It is the address of a unique resource on the Internet, combining the protocol, the server identity, and the specific location or state of the resource on that server. In the same example, the full URL tells a browser not only which server to contact but also which page to request, what optional parameters to pass, and which section of the page to scroll to. The domain name is one component inside the URL; the URL is the complete instruction set for retrieval.2
Reading Each Part of the Example Address
Let us label every segment of https://example.org/notes/first-page?view=compact#intro one by one. The scheme is https, which indicates the protocol the browser must use to request the resource. For websites the protocol is typically HTTPS or HTTP, and the scheme appears before the separator ://. In our string, https sits to the left of that separator.2
Immediately after :// comes the authority, which in this case is simply the domain name example.org. The domain indicates which web server is being requested. There is no port number shown here because standard HTTPS uses port 443 by default, and browsers omit it when the default applies. The authority section ends where the next slash begins.2
The path is /notes/first-page. It follows the domain and describes the location of the resource on the server. Historically a path represented a physical file location, but today it is mostly an abstraction handled by web servers. After the path comes the query string, introduced by the question mark character. Here the query is view=compact, a key-value pair that provides extra parameters to the server. Finally, the hash character introduces the fragment identifier, which in this example is intro. The fragment acts as a bookmark inside the resource, directing the browser to a specific spot. Notably, the fragment is never sent to the server with the request; it is handled entirely by the browser.2
Same Host, Different Paths and Queries
Now keep the host portion fixed at example.org and observe what happens when other parts change. If the path becomes /notes/second-page instead of /notes/first-page, the string points to a different resource on the same server. The domain name has not changed; only the location within that server has shifted. This illustrates that the path is independent of the domain in terms of string structure, even though the server ultimately decides what each path returns.
Changing the query string produces a similar effect at the string level. Replacing view=compact with view=full keeps the same domain and the same path but signals a different parameter to the server. Whether the server actually responds differently depends on its own configuration, which we cannot determine from the string alone. What we can say with certainty is that the two strings are distinct URLs because their query portions differ.
Removing the fragment entirely also yields a different string, even though the fragment never reaches the server. A URL with #intro and the same URL without it are separate identifiers in the browser's address bar. This distinction matters when you share links or write documentation: including a fragment tells the recipient's browser to scroll to a particular section, while omitting it leaves the page at its default scroll position. None of these observations require knowing how the server is configured; they follow directly from how the URL string is structured.
Building an Address Description Card
Record the purpose of the address in one short sentence. For our hypothetical project, the purpose might be: a compact reading view of the first notes page, scrolled to the introduction section. Writing the purpose first gives you a reference point against which you can check whether each part of the URL actually supports that goal.
Next, write the full address on its own line exactly as you intend it to appear: https://example.org/notes/first-page?view=compact#intro. Below it, list each component with a label. Scheme: https. Domain: example.org. Path: /notes/first-page. Query: view=compact. Fragment: intro. This is your description card. It is a plain-text record you can paste into a project readme, share with a collaborator, or keep in a personal notebook.
The card format is deliberately simple. You are not deciding whether the address is good or bad; you are only making its structure visible. If you later change the path or add a new query parameter, you update the card and the purpose sentence together. This keeps your documentation aligned with the actual string you are using.
Verifying Your Card by Hand
Manual verification catches typos and mismatched labels that are easy to overlook when you are writing quickly. The process below uses only copying and visual comparison; no special tools are required.
Check that the separators are in the right positions. The colon and double slash must appear between the scheme and the domain. The question mark must appear between the path and the query. The hash must appear between the query and the fragment. If any separator is missing or misplaced, the string will not parse as you expect.
Compare your labeled card against the raw string one more time after any edit. Even a single missing slash or an accidental space can change the meaning of the address. This habit takes only a few seconds and prevents the kind of confusion that arises when a collaborator pastes a broken link.
Step 1
Copy the full URL from your description card and paste it into a blank text file. This gives you a clean copy without any formatting that might hide characters.
Step 2
Starting from the left, mark each boundary: draw a line or insert a space after https://, after example.org, after /notes/first-page, after ?view=compact, and before #intro. Label each segment with its role.
Step 3
Compare your labeled segments against the card you wrote earlier. If every segment matches its label and no extra characters appear between segments, the card is consistent with the address.
Keeping Your Description for Future Reference
Once your card is verified, store it somewhere you will naturally look when you next work on the project. A plain-text file inside the project folder works well because it travels with the rest of your materials. You might also paste it into a task tracker or a shared document if you are collaborating with others.
The value of this record becomes clear when you need to explain the address to someone else or when you return to the project after a break. Rather than reconstructing the meaning of each segment from memory, you can read your own earlier notes. If the address changes, you update the card and add a brief note about what changed and why. Over time this gives you a small history of decisions.
You may choose to keep only the current version of the card or to retain earlier versions as well. Both approaches are reasonable. Keeping only the current version reduces clutter; retaining history helps you trace how the project evolved. The important point is that the card exists at all, because an unexamined address string is easy to misread and easy to get wrong when you type it from memory.
Frequently asked questions
Is the domain name the same thing as the URL?
No. The domain name identifies the server, while the full URL includes the protocol, domain, path, and optional query or fragment. The domain is one component inside the URL.12
Does the fragment part of a URL get sent to the server?
No. The fragment identifier, which appears after the hash character, is handled entirely by the browser and is never sent to the server with the request.2
Can two URLs share the same domain but point to different resources?
Yes. Two URLs can have the same domain name but different paths, query strings, or fragments, each pointing to a distinct resource or view on the same server.
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. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎