Want a website but have no experience building them?
WordPress is a wonderful place to start if you have little or no experience making websites, it allows you to get that running start by taking away the actual site building, but what exactly is WordPress?
WordPress is really three things.
- A service
- A project
- A piece of software allowing you to create a website
What is WordPress the service?
In 2005 Automattic Inc. launched the website wordpress.com as a simple and easy way to host WordPress websites for customers that were not interested in the hosting and domain name management parts of building a website.
The founders of Automattic Inc. were the same people that built the WordPress software.
What is the WordPress project?
The WordPress project located at wordpress.org is an open source project dedicated to improving and maintaining the WordPress software.
An open source project means that the license with which the software is licensed comply with the definition of an open source license given on the site opensource.org. In short it means that the software under such a license is free for anyone to use (also commercially), change and share.
A hallmark of many successful open source projects is that they have strong and dedicated communities within which are talented and hard working members ensuring that they remain modern, well maintained and secure. This is also the case for the WordPress community and since approximately 38% of all websites on the internet are powered by WordPress there is no shortage of interest in its continued maintenance and improvement.
What is the WordPress software?
The piece of software that we call WordPress is a content management system (CMS) built to make it easy for the less tech savvy among us to build and maintain a beautiful presence on the internet. If you get right down to it WordPress in its most basic form is nothing but a collection of text files containing code written in the PHP language.
The only real requirements to run a WordPress website are the following:
- a web server capable of interpreting PHP 7.4 or greater.
- a database server running either MySQL 5.6 or greater or MariaDB version 10.1 or greater.
It is, however, also recommended that the web server be able to use HTTPS and that means you also need a domain name.
Wow, that was a lot of jargon huh? – Lets clear that up.
Most people that are getting started with building and hosting websites become overwhelmed by the sheer number of new terms they have to learn to understand what is going on. Add to that the tendency to use many of these terms wrongly or interchangeably and the whole task of learning can begin to seem daunting if not impossible, but fear not! that is why we are here!
First lets get some terms straight:
- IP addresses
- Web host
- Web server
- Web application
- Content management system
What is an IP address and why do they exist?
We will be describing the version 4 of IP addresses (IPv4) as this version is by far the most widely used, this section may be expanded with a description of version 6 in the future if it becomes relevant.
IP and IPv4 is often used completely interchangeably.
An IPv4 address is a sequence of numbers separated by dots a very common example of this is 192.168.0.1 the most important aspect to know about IPv4 in this context is the fact that all computers connected to traditional networks take or are granted by a controller such an address.
This in turn means that if your computer is on the internet it has a IPv4 address. From there computers use these IPv4 addresses find and establish connections to each other, this is essential for the internet where one “computer” might be an iPhone trying to establish a connection to a website and the other might be the computer hosting the website.
What is a Domain?
As I see it the meaning of a domain is best described with the analogy of the contacts in your phone, whether you use iPhones or Android phones you have the ability to add to your contacts a name and a phone number.
This is also possible using domain registrations, this allows us to take an IPv4 address and give it a name. An example of such a “name” and “address” combination could be registering that webhostreviewclub.com has an IPv4 of 192.168.0.1.
This allows us humans to remember more websites because we don’t have to remember addresses but just the names associated with these addresses.
What then is the actual website?
While the Merriam Webster definition of a website is technically correct it is not very helpful if your goal is to acquire a functional understanding of what a website actually is and can be.
a group of World Wide Web pages usually containing hyperlinks to each other and made available online by an individual, company, educational institution, government, or organizationMerriam-Webster
When looking at a website in a browser window it will usually present itself as a collection of content presented as well as the creator is able to.
This spans a broad range of possible outcomes from the blank page with black text and nothing else to websites like Facebook and Pinterest.
The common element between all of these websites is that they are all “painted” or “rendered” by the web browser based off of the HTML, CSS and media content that the web host sends when your browser connects to that domain.
For the uninitiated HTML and CSS might look like computer code but really it is better described as “markup” meaning it directly describes the layout and content of a rendered page.
The browser reads, interprets and then renders the HTML and CSS. An example of a simple website can be contained in the following example.
<html> <head> </head> <body> <h1>This is a header!</h1> </body> </html>
The HTML above renders out to the following image when looked at via a web browser:
These are the essential building blocks that make up all websites and given enough time and effort can lead to websites like Facebook and Reddit.
What is a web host?
A web host refers to the actual computer that is running the web server.
This will typically be a “virtual computer” but for now lets think of it as a physical one just like your laptop or desktop PC.
When hosting a website on a host the IPv4 address given to said host will be the IPv4 address that the domain points to, the host computer will then receive a request and understand that the request be handled by the web server software installed on the computer.
What is a web server?
A web server is a piece of software that understands a request for a website or web page and can answer with the correct file for the requesting browser to then render.
A web server can be as simple as a program that always sends the same tiny HTML file as an answer, but it may also be able to process data, answer queries and change the resulting HTML based on the specific request. This is often in tandem with a web application that contains the logic and a web server that help the web application talk to the browser/end user.
What is a web application?
What is HTTPS?
All this data has to be transferred between the server (web server) and the client (browser) but if we were to send this in an unencrypted fashion anyone with the know-how would be able to launch a so-called man-in-the-middle attack and started capturing the data being sent back and forth.
Not great if said data is passwords, social security numbers or credit card numbers.
A solution to this problem comes in the form of HTTPS and simply put it allows the quick and easy encryption of data between a server and a client. The only thing necessary is that the web server has a valid certificate and has been configured correctly to use it.
In short the following things happen when a browser connects to a server via HTTPS:
- Browser says hello to server by sending a method of encryption and a random number
- Server responds with a random number and servers public key
- Browser uses servers public key to encrypt a response containing a pre-master key
- Server then responds with a master key encrypted by the pre-master key
- Now that both the server and browser has a master key they can use that to encrypt traffic both ways in a very performant manner
This process uses symmetric as well as asymmetric encryption algorithms like AES and RSA.
Symmetric encryption is the simplest is where the same key both encrypts and decrypts the message.
Asymmetric encryption is a lot more complex and less performant but allows for different keys to encrypt and decrypt the message being sent. This allows a server to give anyone its public key, enabling them to encrypt a message, and then only being able to decrypt this message with a private key that only the server has. The reverse is used in verification of senders, if anyone can decrypt the message but we know that only the sender can encrypt the message we can essentially guarantee who the sender was.
What is a Content Management System?
A content management system (CMS) is a web application, often in concert with a database, that allows for non programming savvy people to manage the content of a website.
The WordPress CMS system is an example of such a system allowing for people with little prior knowledge of web development or programming to maintain a website. This includes writing and publishing posts, changing themes, updating pages and much much more.
Other examples of CMS systems are:
- Django CMS
What is a database?
A database in its simplest form is a method of storing data in a system.
In modern terms when mentioning a database the meaning is almost certainly a relational database. The meaning of the word relational in this context refers to their ability to reference data in different tables.
In the case of MySQL, which is the preferred database for WordPress albeit not the only option, the database engine allows for multiple databases running on the same host. A single database then in turn has a collection of tables containing the data and these tables can then be set up to reference each other.
An example of this is with customers and orders. One customer may have multiple orders, a customers unique ID can then be referenced in the orders table, meaning that every time we create an order, we also tell the database which customers owns said order.
When taken further this allows for an almost infinite variety of types of data to be saved in a performant and structured manner for use in all sorts of applications from blogs and web shops to scientific endeavors and video games.
Okay then, but how do I build my first free WordPress site?
When going about creating your first free WordPress site the easiest way to get started is creating an account on wordpress.com and going to add a new WordPress site, the following step by step guide will take you through the process of creating, launching and managing your first free WordPress site.
If you have followed along this far into the guide you now know the fundamentals of setting up a site in WordPress using wordpress.com.
I realize that much of the information laid out in this article is very foundational but I feel that reading through and understanding, if only superficially, the concepts described will give most people the fundamental knowledge needed to build further understanding and kick-start their journey towards technical independence.
I sincerely hope you enjoyed the content in this article. If you feel the content can be improved, you have questions or if you just liked the article please leave a comment telling us about it!