Before a website goes live, its address needs to be understood clearly enough to describe, verify, and share without confusion. This article uses one hypothetical URL to show what each part of a web address does and how to keep a simple record of those parts for your own project.

What Question Does Each Part Answer?

Suppose you are planning a small personal project and you sketch out a sample address to think through how the pieces fit together. The address is https://example.org/notes/first-page?view=compact#intro . This is a hypothetical string used only for reading practice; it does not point to a real page that exists or is live anywhere. Treating it as a labeled diagram rather than a working link keeps the exercise focused on structure rather than on whether the page loads.

A domain name answers the question “which server on the Internet am I trying to reach?” Domain names provide a human-readable address for any web server available on the Internet, because IP addresses are hard to remember and might change over time. In the example above, example.org is the domain name portion. It identifies the server without specifying what content on that server you want.1

A full URL answers a more specific question: “which particular resource on that server, and under what conditions, should the browser retrieve?” A URL is the address of a unique resource on the internet and is one of the key mechanisms used by browsers to retrieve published resources such as HTML pages, CSS documents, and images. The same domain can appear in many different URLs, each pointing to a different resource or a different view of a resource. That distinction between identifying a server and identifying a specific resource on it is the core difference this article explores.2

Labeling Every Part of the Example Address

Write out the full string https://example.org/notes/first-page?view=compact#intro on paper or in a plain-text file, then draw a line or insert a space before each structural boundary. The scheme is https, which indicates the protocol the browser must use to request the resource. The authority section begins after the :// separator and here consists of the domain name example.org. The path is /notes/first-page, which points to a location on that server. The query string starts with the question mark and reads view=compact. The fragment identifier starts with the hash symbol and reads intro.2

The question mark is the delimiter that introduces the query portion. Everything between the question mark and the hash symbol consists of key-value pairs that provide extra parameters to the web server. In this example there is a single pair, view=compact, but a query string can contain multiple pairs separated by ampersands. The hash symbol introduces the fragment, which acts as a sort of bookmark inside the resource, giving the browser directions to show the content located at that bookmarked spot. The fragment is never sent to the server with the request.2

The domain name itself, example.org, has its own internal structure. A domain name has a simple structure made of several parts separated by dots and read from right to left. Here org is the top-level domain, which tells users the general purpose of the service behind the domain name, and example is the label that precedes it. The TLD is the final component of a domain name, and ICANN designates organizations to manage each TLD. Recognizing these sub-parts helps when you later need to explain your address to someone who is unfamiliar with how naming works.13

Same Host, Different Paths and Queries

Keep the scheme and domain unchanged and swap only the path. The string https://example.org/archive/old-draft?view=compact#intro uses the same host but points to a different location on that server. The path /archive/old-draft is simply a different route written after the domain. Without testing against a live server, you cannot determine from the string alone whether that path returns a page, an error, or a redirect; the string tells you only what is being requested.

Now keep the path fixed and change the query. The string https://example.org/notes/first-page?view=full#intro requests the same resource path but passes a different parameter value. The server may use those parameters to do extra processing before returning the resource, and each web server has its own rules regarding parameters. From the address alone you can observe that the parameter name is view and its value changed from compact to full, but you cannot confirm how or whether the server distinguishes between them without additional information from the server owner.2

Finally, change only the fragment. The string https://example.org/notes/first-page?view=compact#summary keeps the scheme, host, path, and query identical but moves the bookmark to a different anchor point within the document. Because the fragment is never sent to the server, this change affects only where the browser scrolls after loading the page. Comparing these three variations side by side makes clear that each part of the URL string serves a separate role: the path selects the resource, the query passes additional instructions, and the fragment positions the reader within the loaded result.2

Building an Address Description Card

Record the purpose of the address in one sentence at the top of your card. For this hypothetical project the purpose might read: a compact view of the first notes page, scrolled to the introduction section. Stating the purpose first gives you a reference point when you later check whether each part of the string actually supports that intent.

Below the purpose, list each component on its own line. Scheme: https. Domain: example.org. Path: /notes/first-page. Query: view=compact. Fragment: intro. Writing them separately prevents the common mistake of treating the whole string as one undifferentiated block. If your project eventually uses more than one address, create one card per address so the components never blur together.

Add a short note explaining why you chose each value. For instance, you might note that the path reflects a folder-like structure you plan for your content, that the query parameter controls display density, and that the fragment targets a specific heading. These notes are your own planning choices, not technical requirements imposed by any standard. They exist so that a future reader of the card, including yourself months later, can understand the reasoning without re-deriving it from scratch.

Verifying the Card by Hand

A quick manual check catches typos and misplaced delimiters before you share the address with anyone else. The following steps are ordinary author suggestions, not requirements from any specification.

Each step below can be completed in a plain-text editor without any special tooling.

If a mismatch appears during any step, correct the card immediately rather than noting it for later, because small errors compound when the address is copied into other documents.

Step 1

Copy the full URL string from your card into a blank line of a text file. Do not retype it from memory; use the copy function so that you are checking exactly what the card contains.

Step 2

Insert a space before each delimiter: after https, before the first slash of the path, before the question mark, and before the hash symbol. This visually separates the five components and makes any missing or extra character obvious.

Step 3

Compare each separated segment against the corresponding line on your card. Confirm that the scheme line matches the first segment, the domain line matches the second, and so on through the fragment. If every segment matches, the card is consistent with the string you intend to use.

Keeping the Description for Future Reference

Store the completed card in a location you already check regularly, such as a project readme file or a dedicated notes folder. The goal is not to build a formal documentation system but to make the information easy to find when you next need to paste the address into a template, share it with a collaborator, or troubleshoot a link that is not behaving as expected.

When your project grows and you add more pages, repeat the card process for each new address. Over time you will have a short list that maps every public-facing URL to its purpose and its component breakdown. This list is a personal reference; you are free to choose whatever format makes review fastest for you, whether that is a plain-text file, a spreadsheet row, or a note in a project management tool.

If you later decide to change a path or add a query parameter, update the card at the same time you update the address itself. Keeping the card and the live string in sync means you always have a single place to look when you need to explain what a particular address is supposed to do. That habit of immediate updating is a simple author recommendation that prevents the slow drift between documentation and reality that causes confusion in larger projects.

Frequently asked questions

In the example URL, what is the difference between the query string and the fragment?

The query string, introduced by the question mark, passes parameters to the web server and can influence what the server returns. The fragment, introduced by the hash symbol, is a bookmark within the already-loaded resource and is never sent to the server. In the example, view=compact is a query parameter while intro is a fragment.2

Does changing only the path in a URL always mean the browser will load a different page?

Not necessarily. The path tells the browser which resource to request, but how the server responds to that request depends on the server's own configuration. From the URL string alone you can observe that a different resource is being requested, but you cannot confirm the actual outcome without testing against the live server.

Why should I write down each URL component separately instead of just saving the full string?

Separating the components makes it easier to spot a typo, explain the address to someone else, and update one part without accidentally altering another. A full string treated as a single block hides these boundaries and makes small errors harder to catch during review.