Before a website goes live, its address needs to make sense to the person building it. This article uses one hypothetical URL to show how domain names and full addresses differ, what each part of the string does, and how a simple written record can prevent confusion later.

What Domain Names and Full URLs Each Answer

Imagine you are preparing a small personal project site and you write down the address https://example.org/notes/first-page?view=compact#intro as a placeholder for planning purposes. This address does not point to a real page; it exists only so we can examine the string piece by piece. Even as a hypothetical example, it contains every major component that appears in a typical website address, which makes it useful for learning the structure before you work with your own domain.

A domain name answers the question “which server on the Internet should I 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 our example, example.org is the domain name. It identifies the host machine without specifying any particular file or page on that machine.1

A full URL answers a more specific question: “which unique 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, CSS documents, and images. The complete string https://example.org/notes/first-page?view=compact#intro narrows the scope from the entire server down to one particular resource, with additional instructions about how to display it.2

Labeling Each Part of the Example Address

Write out the example string and mark each segment with its role. The scheme is https, which tells the browser which protocol to use when requesting the resource. The host is example.org, the domain name that identifies the server. The path is /notes/first-page, which points to a specific location on that server. The query string is view=compact, introduced by a question mark. The fragment is intro, introduced by a hash symbol. Each of these parts is separated by a distinct delimiter, and together they form the complete address.2

The question mark is the signal that everything after it is a set of parameters provided to the web server. These parameters are key-value pairs that the server can use to do extra processing before returning the resource. The hash symbol, sometimes called the number sign, marks the beginning of the fragment identifier. An anchor represents a sort of bookmark inside the resource, giving the browser directions to show the content located at that bookmarked spot. It is worth noting that the part after the hash is never sent to the server with the request.2

Notice that the scheme, host, and path are separated by structural characters (the colon-slash-slash pattern, then forward slashes), while the query and fragment are separated by their own unique markers. This means you can always identify where one part ends and the next begins by looking for these delimiters. For a beginner, simply finding the question mark and the hash symbol in any address string is a reliable first step toward understanding what the address is asking for.

Comparing Variations with the Same Host

Keep the host example.org fixed and change only the path. Compare https://example.org/notes/first-page?view=compact#intro with https://example.org/gallery/photos?sort=date. The domain name is identical in both cases, meaning the browser would contact the same server. What differs is the path, which points to a different resource on that server. The query string also changes, and the fragment is absent in the second address. This shows that the domain name alone does not determine what content you see; the path and other parts refine the request.

Now keep both the host and the path the same but change the query string. Compare view=compact with view=full. The server receives the same path in both cases but gets different parameter values. We are not inferring what any particular server would do with these values; the point is simply that the string itself carries different instructions. The fragment could also change from intro to summary, which would direct the browser to a different bookmark within the same resource without altering what the server receives.

These comparisons reveal that a URL is not a single indivisible label but a structured string where each segment has a distinct role. Changing the path changes which resource is requested. Changing the query changes the parameters sent alongside that request. Changing the fragment changes where the browser scrolls within the returned resource. Understanding these boundaries helps you read any unfamiliar address and predict which part is responsible for which behavior, without needing to know the server’s internal logic.

Making an Address Description Card

Record a short description card for your hypothetical project address. The card should contain three things: the purpose of the page in plain language, the full address string exactly as you intend it, and a labeled breakdown of each part. For our example, the purpose might be “a compact reading view of the first note in the notes section.” The full address is https://example.org/notes/first-page?view=compact#intro. The breakdown lists scheme as https, host as example.org, path as /notes/first-page, query as view=compact, and fragment as intro.

Writing this card forces you to decide what each part is meant to do before you build anything. If you cannot describe the purpose of the query parameter in a short phrase, that is a signal that you may not need it yet. If the fragment name does not correspond to a section you plan to create, you can remove it from your plan now rather than discovering the mismatch later. The card is a planning tool, not a technical requirement.

You can keep this card in a plain text file, a note in your project folder, or even a comment at the top of your first HTML file. The format does not matter as long as you can find it again. What matters is that the full address and its labeled parts sit together in one place, so that when you return to the project after a break you can quickly remind yourself what each segment was supposed to mean.

Verifying the Card by Manual Copy and Labeling

Check your description card against the actual string by copying the address character by character into a separate line. This manual copy step catches typos that are easy to miss when you are reading quickly, such as a missing slash, a swapped letter, or an extra space. After copying, go through the string from left to right and place a label above each segment: scheme, host, path, query, fragment. If any segment does not match what your card says, correct the card or the address until they agree.

Use a different colored pen or a text highlight if you are working on paper or in an editor that supports highlighting. Mark the question mark and the hash symbol prominently, because these are the two delimiters most often overlooked by beginners. Once every segment is labeled and matches your card, you have a verified reference that you can trust when writing links, configuring redirects, or explaining the address to a collaborator.

Repeat this verification any time you change the address. Even a small edit, such as renaming a path segment or adding a new query parameter, can introduce a mismatch between your card and the live string. The habit of re-checking after each change takes only a moment and prevents the kind of confusion that builds up over weeks of untracked edits.

Step 1

Copy the full address from your card into a blank line, character by character, without looking back at the original until you finish.

Step 2

Compare your copy to the original and circle any differences. Correct them before proceeding.

Step 3

Label each segment of the corrected copy with its role: scheme, host, path, query, fragment.

Step 4

Confirm that every label matches the corresponding entry on your description card. Update whichever side is wrong.

Keeping the Record for Future Use

Store your verified description card somewhere you will naturally look when you resume work on the project. For many people this is a README file at the root of the project folder, or a dedicated notes document that travels with the site files. The goal is not a particular format but a reliable location. When you or a collaborator next opens the project, the card should be the first thing visible alongside the code.

As your project grows, you may add more pages and therefore more addresses. Each new address can get its own line on the same card, following the same breakdown pattern. Over time the card becomes a small map of your site’s structure, showing which paths exist, what queries they accept, and which fragments you have defined. This map is useful when you write navigation links, set up redirects, or explain your site layout to someone else.

You do not need to follow any external standard for how detailed the card should be. Some people record only the full address and a one-line purpose. Others add notes about why a particular query parameter was chosen or what content the fragment points to. Choose the level of detail that helps you personally. The important thing is that the record exists, that it matches the actual strings you use, and that you update it whenever the strings change.

Frequently asked questions

Is the fragment part of a URL sent to the server?

No. The fragment identifier, which is the part after the hash symbol, is never sent to the server with the request. It is used only by the browser to scroll to a specific spot within the already-retrieved resource.2

Can a domain name by itself tell me which page I will see?

No. A domain name identifies the server but not the specific resource on it. You need the full URL, including the path and any query parameters, to specify which page or file you are requesting.12

Do I need to include the scheme when typing a URL in the browser?

Not always. Browsers typically default to HTTP or HTTPS when you omit the scheme in the address bar. However, when writing URLs inside HTML or sharing them in documents, including the scheme makes the address unambiguous.2