/ / Software Networking – What’s a Network in Programming?

Software Networking – What’s a Network in Programming?

Software networking

Networking means connecting things.

So, for instance,

  • A rail network means to connect two or more rail lines.
  • A human network refers to the partnership between two or more people.
  • Phone network implies the connection between two or more phones.
  • A computer network means to connect two or more computers.
  • A software network means connecting two or more software applications.

Networking, in most cases, requires one or more tools. For instance, in software networking, the main components that facilitate the interconnection of apps are:

The Publishing Crew

  • Text
  • Editor
  • Editing Platform
  • Workstation
  • Annotator
  • Stylist
  • Instructor

The Published Document

  • Webpage
  • Website
  • Domain name

The Published Document’s Distributors

  • Web Address
  • Browser
  • Search Engine
  • Server
  • Internet

Let’s discuss each of the components mentioned above in the following sections — starting with the publishing crew.

Publishing Crew – The first set of components that facilitate software networking

Publishing crew refers to the people (or tools) that facilitate the interconnection of software applications. Here are the common ones:

Text (Content)

Text is any writing that is composed of characters—and every application needs lots of them.

Keep in mind that text is the predominant content of a software application.

For instance, consider this HTML document:

<html>
  <head>
    <meta charset="UTF-8" />
    <style>
      .tenor-gif-embed {
        border: 7px solid #000000;
      }
    </style>
  </head>

  <body>
    <div
      class="tenor-gif-embed"
      data-postid="18866548"
      data-share-method="host"
      data-aspect-ratio="1"
      data-width="100%"
    >
      <a
        href="https://tenor.com/view/celebration-dancing-students-students-celebrating-chicken-dance-gif-18866548"
        >Celebration Dancing GIF</a
      >from
      <a href="https://tenor.com/search/celebration-gifs">Celebration GIFs</a>
    </div>
    <script
      type="text/javascript"
      async
      src="https://tenor.com/embed.js"
    ></script>
  </body>
</html>

Try it on StackBlitz

Above is an HTML document containing a GIF animation with some CSS and JavaScript code.

Observe that even though the app above got configured to display only a GIF animated image, the app’s content is 100% text.

That is to say, “text” is an essential tool of every web application. There’s absolutely no way you can build a web app without typing lots of text.

Editor (Developer)

An editor is a person that edits a software document.

Editing Platform (IDE)

An editing platform (IDE) is the app used by editors (developers) to prepare documents for publication.

Popular editing platforms used by most software developers are Sublime Text, Visual Studio, Atom, and Brackets.

Workstation

A workstation is a powerful computer (or laptop) used for technical and engineering works like software development, computer-aided designs (CAD), and other graphics-intensive projects.

Annotator (HTML)

Annotations (markup) are notes that get added to texts. So, for instance, HTML is an annotation language developers use to describe a web document.

Some other popular markup languages are XML, Markdown, SVG, Keyhole, MathML, X3D, XHTML, and LaTeX.

Stylist (CSS – Cascading Style Sheet)

A stylist helps to apply styles to an annotated document. So, for instance, CSS helps to add artistic touches to the elements of an HTML document.

Instructor (JavaScript)

An instructor directs the action of a page and its contents. For instance, JavaScript is a commanding language that commands the items of an HTML document.

So now that we know about the publishing crew, we can talk about the published document.

Published Document – The second set of components that facilitate software networking

A published document refers to the app an editor has configured to interconnect with other applications.

For instance, a webpage, website, and domain name are common types of published documents. Below are few details about the three.

What is a webpage?

A web page is a single code file configured by an editor to interconnect with other documents on the World Wide Web (WWW).

What is a website?

A website is a set (or collection) of web pages configured by an editor to interconnect with other documents on the World Wide Web (WWW).

Keep in mind that websites typically require domain names.

But what exactly is a domain name? Let’s find out below.

What exactly is a domain name?

A domain name is a website’s name.

In other words, a domain name is what comes after @ in an email address. Or what follows www. in a web address.

So, for instance, codesweetly is the domain name in [email protected] and https://www.codesweetly.com.

Keep in mind that a domain name is a human-friendly version of an IP address.

As an example, 172.217.169.36 is the IP address for www.google.com.

In other words, suppose you type www.google.com into your browser. In that case, the computer will convert the URL to a 172.217.169.36 IP address via a Domain Name System.

But what exactly is a Domain Name System? Let’s find out below.

What exactly is a Domain Name System?

A Domain Name System (DNS) is the system (technique) by which domain names get converted to their equivalent IP (Internet Protocol) addresses.

But why convert domain names to IP addresses?

Keep in mind that humans find it much easier to remember names than numbers. However, computers work best with digits.

Therefore, converting domain names to IP addresses and vice versa enables fluent communication between humans and computers.

In other words, the domain name system helps computers to quickly locate the specific resource (e.g., website) humans want it to get. While also allowing people to use computers with ease.

So, how exactly does DNS work?

Suppose you enter a domain name into your browser. DNS will search its servers for the IP address corresponding to the queried website name.

If a matching IP address gets found, DNS will:

  1. Convert the domain name to the matched IP address.
  2. Send your browser helpful information about the IP address.

Keep in mind that the data your web browser will receive includes:

  • The domain name’s IP address, and
  • The current nameservers of the website’s host — which contains the host’s IP address.

Those data will help your browser locate and retrieve your request from the server hosting the resource you requested.

Therefore, consider DNS as an essential translator that translates a human-friendly address (e.g., www.codesweetly.com) to the equivalent computer-friendly address (e.g., 104.21.1.249).

But then again, where exactly do all the domain names and their corresponding IP addresses get stored? Let’s find out below.

What is a Domain Name Server?

A Domain Name Server is the server (or computer) used to store domain names and their corresponding IP addresses.

Keep in mind that a DNS server is an essential part of the Domain Name System. It provides helpful details about domain names and IP addresses during a DNS query (request) process.

Note

  • DNS servers are sometimes called nameservers.
  • IP addresses typically have two nameservers.
  • You can use ICANN’s lookup tool to get a website’s nameservers and other domain information.

So now that we know about domain names, domain name systems, and DNS servers, let’s summarize their differences.

Domain Name vs. Domain Name System vs. DNS Server

A Domain Name is a website’s name.

A Domain Name System (DNS) is how domain names get converted to their equivalent IP addresses.

And a DNS Server is a computer used to store and map domain names to their corresponding IP addresses.

Keep in mind that domain name system and DNS Hierarchy are two essential aspects of the internet’s namespaces.

But what exactly is a DNS Hierarchy? Let’s find out below.

What exactly is a DNS Hierarchy?

DNS Hierarchy is a system used to sort the parts of a domain name according to their importance.

So, for instance, in www.codesweetly.com, the DNS Hierarchy tree would be:

DNS hierarchy tree
DNS Hierarchy = Root Level Domain → Top Level Domain → Domain name → Subdomain

Let’s discuss each part of the DNS Hierarchy tree below.

Root-level domain (“”) – The zeroth-level domain

The root-level domain (“”) is the highest hierarchy level of any domain name system.

In order words, the root-level domain is the primary directory (folder) where all other directories reside. It is the parent folder of the top-level domain and all its contents.

Keep in mind that the root-level domain does not have a name. So, technically, its name is an empty string (“”).

So, now that we know about the root-level domain, we can discuss the top-level domain (TLD).

Top-level domain (com) – The 1st level domain

The top-level domain (TLD) is what follows the domain name in a URL.

So, for instance, in “codesweetly.com”, “com” is the top-level domain.

Keep in mind that TLD’s initial purpose was to help classify websites based on their purposes, ownership, or geographical origin.

In other words, the initial intent for each TLD was like so:

  • “com” for commercial websites,
  • “org” for organizational websites,
  • “edu” for educational websites,
  • “net” for network organizations,
  • “gov” for governmental websites,
  • “ca” for Canadian websites,
  • “au” for Australian websites,
  • “mil” for military websites, and so on.

However, IANA has abandoned the restrictions on most TLDs due to the exponential growth of the internet. Only a few ones like “edu”, “gov”, and “mil” remain restricted for educational, governmental, and military purposes.

Let’s now discuss the next domain after the top-level domain — that is, the domain name.

Domain name (codesweetly) – The 2nd level domain

A domain name (second-level domain) is your website’s name. It is the name you buy from a domain registrar like Namecheap.

In other words, a domain name is a text that comes after the subdomain.

So, for instance, in www.codesweetly.com, codesweetly is the domain name.

And right after the domain name comes the third-level domain — which is also called the subdomain.

Subdomain (www) – The 3rd level domain

A subdomain (third-level domain) is a subset of a specific website. It allows you to categorize your website into one or more sections.

Although most people use www as the main section of their website, you are technically free to categorize your domain as you wish.

So, for instance, suppose we intend to group codesweetly.com into five categories: the main section, the news section, an online store, the forum segment, and the projects area.

In that case, our site’s five sections could look like so:

  • www.codesweetly.com — The main section
  • news.codesweetly.com — The news section
  • shop.codesweetly.com — The online store
  • forum.codesweetly.com — The forum section
  • projects.codesweetly.com — The projects section

Keep in mind that the subdomains in the five sections above are: www, news, shop, forum, and projects.

Now, suppose our domain does not contain a subdomain. In that case, the domain would be called a base, apex, bare, root apex, naked, or zone apex domain.

So, for instance, codesweetly.com is CodeSweetly’s apex domain.

However, I’ve configured the bare domain to redirect to the www subdomain.

Therefore, if you enter codesweetly.com in your browser, the computer will redirect you to www.codesweetly.com.

Note

  • You may have observed that we discussed the DNS hierarchy tree from right to left. We did so because a domain’s hierarchy descends from the right to the left.
  • The URL www.codesweetly.com is a fully qualified domain name (FQDN) because it contains all four levels of the DNS hierarchy. In other words, it has a root-level domain, top-level domain, domain name, and subdomain.
  • Each dot mark (.) in a URL serves as a separator between each DNS hierarchy level. So, for instance, in www.codesweetly, the dot mark helps separate the domain name from the subdomain.

So now that we know about a webpage, website, and domain name, let’s summarize their differences.

Webpage vs. Website vs. Domain name – What’s the difference?

The difference between a webpage, website, and domain name is this:

  • A webpage is one of the pages of a website — just like a book’s page.
  • A website is the whole collection of an app’s web pages — just like the entire collection of pages that make up a book.
  • A domain name is the name of a website — just like the name of a book.

Let’s now discuss the third set of components that facilitate the interconnection of apps: the published document’s distributors.

Published Document’s Distributors – The third set of components that facilitate software networking

The published document’s distributors refer to the tools that allow people to access the software an editor has published. Here are the popular ones:

Web Address – A document’s address

A web address (URL) is a website’s specific location on a computer (web server).

In other words, a URL (Uniform Resource Locator) is a text string that specifies the location of webpages, images, or videos, on the internet.

For instance, https://www.codesweetly.com is CodeSweetly’s web address.

Let’s now talk about the anatomy of a Uniform Resource Locator (URL).

The anatomy of a URL
A URL consists of a scheme, domain, port, file path, one or more parameters, and an anchor.

Below is the description of each part of the URL in the image above.

Scheme – https (HyperText Transfer Protocol Secure)

An https scheme indicates the protocol (set of rules) browsers must use to access a website’s resources. Other popular schemes are HTTP, Mailto, and FTP.

Subdomain – www (World Wide Web)

WWW is a website’s subdomain. In most cases, people use www as their site’s primary domain. However, it is not compulsory to use www in URLs as it serves no technical purpose.

In other words, you can choose to use www as a secondary domain while using blog, or news, or the likes as your primary domain.

Alternatively, you can create your domain without using www.

Irrespective of your choice between a www and non-www URL, it’s best to choose one and stick with it. By so doing, your web address will appear consistent to your users and search engines.

After you’ve chosen a www or non-www URL, remember to redirect the other type.

So, for instance, if you’ve chosen to use www URLs, configure your server to redirect all non-www requests to their www equivalent.

The reason a redirect is necessary is that you can’t predict the URL your users will use.

Domain name – codesweetly

A domain name is the name of a website. It is an essential part of a website that helps users remember a website.

You can purchase domain names from registrars like Namecheap, Domain.com, or Bluehost.

Note

Domain names are sometimes called hostnames or website names.

Top-level domain – com

Top-level domain (TLD) helps classify a website under a specific category on the internet.

For instance, in https://www.army.mil, the mil top-level domain categorizes the army website as a military domain.

Likewise, in https://www.harvard.edu, the edu top-level domain classifies the Harvard website as an educational resource.

Port – 80

A port is a technical gate on a website’s server from which browsers can access a site’s resources.

So, for instance, in https://www.codesweetly.com:80, the port is 80.

In other words, port 80 is the gate designated to serve CodeSweetly’s resources.

Keep in mind that you can omit the port number from a URL if the website’s server uses a standard HTTP port to grant access to the site’s resources.

For instance, suppose a site’s server uses port 80 for HTTP (or port 443 for HTTPS). In such a case, you do not need to specify a port number when typing the URL.

However, if the site’s server uses any non-standard port to provide its resource, in that case, you must specify the port number.

Note

MIT’s common ports document contains a list of the standard communication ports as defined by IANA.

File path – /path/to/file.html

A URL’s file path is the path (route) to a website’s resource on a web server.

Parameter – ?key1=val1&key2=val2

A parameter (query string) allows you to send specific data to the server. When the webserver receives the query string, it can use the string’s value to do other stuff before sending the requested resource to your browser.

Anchor – #SpecificPartOfThisFile

An anchor is a link to a specific part of the same file the URL references.

In other words, an anchor is like a bookmark used to tell browsers to display a file’s content located at the bookmarked spot.

Note

  • The part after the hash symbol (#) of an anchor is sometimes called the fragment identifier.
  • The fragment identifier never gets sent to the server.

A quick review of the anatomy of a URL

Suppose a website is a book. In that case, we can describe its anatomy like so:

Anchor = A bookmark at a specific part of the book. For instance, a bookmark of a page’s heading.

Bookmark of a page's heading
A bookmark of a Bible’s heading – Image by Avery Evans

Parameter = An information to the book’s custodian. For instance, you can use the parameter to communicate the book’s language to the custodian.

File path = The specific page you need from the book — for instance, Page 625.

Port = The door number of the store where one can access the book — for instance, Door 70.

Top-level domain = The genre in which the book is classified — for instance, Educational.

Domain name = The name of the book — for instance, Bible.

Subdomain = The specific section of the book you wish to access — for instance, Old Testament.

Scheme = The set of rules your agent must use to get the book from its custodian — for instance, Love.

URL = The full address of the content you need from the book — for instance,

love://oldtestament.bible.educational:70/page625?lang=en#zophar-speaks

So, now that we know what a web address is, we can talk about another tool people use to access a software an editor has published: the browser.

Browser – A document’s showcase

A browser is a software application used to view a website’s content.

In other words, browsers are like digital showcase containers for displaying billions of resources.

Tourists look at a showcase of a jewelry store in Rome
Tourists look at a showcase of a jewelry store – Image by Egor Myznik

Some well-known browsers are Mozilla Firefox, Google Chrome, Opera, and Microsoft Edge.

Note

  • Browsers are sometimes called Web browsers or Internet browsers.
  • Technically, a browser is a type of client (also called software programs) used by computers to request and receive data from another software (computer).
  • Email clients, Window Desktop Client, and Postman are other client types that computers can use to request and receive data from other software.

Let’s talk about another tool you can use to access a software application an editor has published: the search engine.

Search Engine – A document’s marketplace

A search engine is a software program you can use to search for resources on the internet.

In other words, a search engine is like a marketplace where you go to search for products.

A woman searches for vegetables at a marketplace.
A woman searches for vegetables at a marketplace – Image by Milada Vigerova

Another tool that facilitates access to a software application an editor has published is the server. Let’s learn more about it below.

Server – A document’s warehouse

A server is a computer where documents (such as webpages, videos, audios, and images) are stored until other computers request them over the internet (or local network).

In other words, a server is like a warehouse where goods are stored until people request them.

Photo of a flower warehouse
Photo of a flower warehouse – Image from Pixabay

Another essential tool that facilitates access to published apps is the internet. Let’s discuss it below.

Internet – A document’s transporter

The internet is one of the means through which data gets shared between two or more computers.

In other words, the internet is like a conveyor used to transport goods from one location to another.

Photo of conveyors transporting goods.
Photo of conveyors transporting goods – Image by Falco

Keep in mind that Bluetooth and ultra-wideband are other means through which two or more computers can share data.

Wrapping it up

This article discussed the meaning of software networking. We also looked at the main tools that facilitate the interconnection of software applications.

Thanks for reading!

Get Helpful Resources in Your Inbox

A CodeSweetly Digest

Similar Posts