If you are preparing your first website, the address bar string can look like a single block of text. In reality it combines several distinct pieces, each answering a different question. This article takes one hypothetical address apart so you can see exactly what each piece does and how to keep a useful record of it.
What Domain Names and URLs Each Tell You
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 entirely hypothetical and does not point to a real page; it exists only so we can label its parts. Looking at it as a whole, you might wonder what information it actually carries and how much of it you need to understand before launch.
A domain name answers one specific question: which server should the browser contact? Domain names are a key part of the Internet infrastructure because they provide a human-readable address for any web server available on the Internet. Computers communicate through IP addresses, which are hard for people to remember and may change over time, so domain names solve that readability problem.12
A complete URL answers a broader question: which specific resource on that server should be retrieved? 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, CSS documents, and images. In other words, the domain name is one component inside the larger URL string, and the remaining components narrow the request down to a particular page, file, or position within that page.3
Labeling Each Part of the Example Address
Let us return to our hypothetical string and mark every component. The scheme is https, which tells the browser which protocol to use when requesting the resource. The authority section follows the pattern :// and contains the domain example.org, which identifies the web server being requested. After the authority comes the path /notes/first-page, which points to a location on that server.3
The question mark introduces the query portion of the URL. In our example, view=compact is a key-value pair that provides extra parameters to the web server. The hash symbol introduces the fragment, also called the anchor. Here intro is the fragment identifier, which gives the browser directions to show content located at a bookmarked spot inside the resource. The fragment is never sent to the server with the request; it only affects what the browser displays after the resource loads.3
Notice that the domain name example.org itself has internal structure. The part after the final dot, org, is the top-level domain, which is the most generic domain in the hierarchical naming system. The label example sits to the left of the TLD and is sometimes called the second-level domain. Together they form a fully qualified domain name, and adding the scheme https:// in front makes the combination a complete URL.41
Comparing Paths and Queries While the Host Stays the Same
Keep the scheme and host fixed at https://example.org and change only the path. If you replace /notes/first-page with /notes/second-page, you get a different URL string even though the server being contacted is identical. The path portion is what distinguishes one resource location from another on the same host. You can think of it as changing the building number on a street while the street name stays the same.
Now keep the path fixed and change the query string. Replacing view=compact with view=full produces yet another distinct URL string, but the path still points to the same resource location. The query parameters are extra information provided to the web server, and each web server has its own rules regarding how it handles those parameters. Without asking the server owner, you cannot know from the string alone whether a particular parameter will change the returned content or be ignored entirely.3
Finally, consider what happens when you remove the fragment. The URL https://example.org/notes/first-page?view=compact without #intro still requests the same resource from the server, because the fragment is never sent with the request. The fragment only tells the browser where to scroll or focus after the page has loaded. This observation is useful when you are comparing two addresses and wondering whether they point to the same underlying resource or merely to different positions within it.3
Building an Address Description Card for Your Project
Write down a short card for each address you plan to use during your project. For our hypothetical example, the card might contain four lines: the purpose of the address, the complete URL string, a list of its labeled parts, and a note about which parts you expect to change later. Keeping everything on one card means you can glance at it during design discussions or when writing documentation without re-parsing the string from memory.
For the purpose line, describe what the address is meant to do in plain language. In our case you might write something like “displays the first note page in a compact reading view, scrolled to the introduction section.” This sentence captures the intent behind the path, the query, and the fragment all at once, which makes it easier to spot mistakes later if the string drifts away from your original goal.
Record the labeled parts separately from the full string so that you can update one piece without accidentally altering another. For instance, if you later decide to rename the path from /notes/first-page to /journal/first-entry, you can see immediately that only the path line changes while the scheme, host, query, and fragment remain untouched. This separation reduces the chance of introducing a typo into a part you did not intend to modify.
Verifying the Card by Hand
Once your description card is written, a quick manual check helps catch copy errors before you share the address with anyone else. The process below is a set of ordinary author suggestions rather than requirements from any specification; adapt the steps to whatever format suits your notes.
Check the punctuation marks that separate each section. Confirm that the colon and double slash appear between the scheme and the host, that a forward slash begins the path, that a question mark introduces the query, and that a hash symbol introduces the fragment. A misplaced or missing delimiter is one of the most common sources of broken addresses in hand-written notes.
Record any assumptions you made while building the card. If you assumed the query parameter view=compact would be handled by your future server, note that assumption explicitly so you remember to test it once the site is live. Writing down what you do not yet know is just as useful as writing down what you do.
Step 1
Copy the full URL string from your card into a plain-text editor. Compare it character by character against the original to make sure no spaces, extra slashes, or missing symbols crept in during transcription.
Step 2
Label each segment directly in the text editor by inserting a line break before each delimiter. You should end up with separate lines for the scheme, the host, the path, the query, and the fragment. Read each line and confirm it matches the corresponding entry on your description card.
Step 3
Write a one-sentence summary of what the address is supposed to accomplish and compare that summary to the purpose line on your card. If the two descriptions disagree, decide which one reflects your current intent and update the other.
Keeping Your Record for Future Writing and Communication
Retain the description card in whatever format you already use for project notes, whether that is a markdown file, a spreadsheet row, or a physical index card. The format matters less than consistency; the goal is to have one place you can look when you need to explain your address to a collaborator, embed it in documentation, or troubleshoot why a link is not behaving as expected.
When your project grows, you may accumulate several addresses for different pages, views, or anchor positions. Each one benefits from its own card. If you later rename a path or add a new query parameter, updating the card at the same time keeps your reference accurate and saves you from reconstructing the logic months later when the original reasoning has faded from memory.
The habit of labeling parts also pays off when you read other people's URLs. Because you have practiced identifying the scheme, host, path, query, and fragment in your own example, you can apply the same labels to any address you encounter. This makes it easier to ask precise questions in forums or bug reports, because you can specify which part of the string you believe is causing the issue rather than pasting the entire URL and hoping someone else figures it out.
Frequently asked questions
Is the fragment part of the URL sent to the server?
No. The fragment identifier, which appears after the hash symbol, is never sent to the server with the request. It only instructs the browser to scroll or focus on a specific spot within the already-loaded resource.3
Can I change the query string without changing the page being requested?
The query string is separate from the path, so changing it produces a different URL string while the path still points to the same resource location. However, whether the server actually returns different content depends on how that server handles the parameters, which you would need to confirm with the server owner.3
Do I need to understand every URL rule before launching a simple site?
No. The standard includes extra parts and rules that are not relevant for regular users or web developers building functional sites. Knowing the scheme, host, path, query, and fragment is enough for most personal and small-project work.3
What is a Domain Name? - Learn web development | MDN. Retrieved 2026-11-01. ↩︎ ↩︎
IP Address - Glossary | MDN. Retrieved 2026-11-01. ↩︎
What is a URL? - Learn web development | MDN. Retrieved 2026-11-01. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
TLD - Glossary | MDN. Retrieved 2026-11-01. ↩︎