This content covers the foundational technologies behind the internet and web, including URIs, URLs, HTML, HTTP methods, status codes, and HTTPS with certificates.
Internet & World Wide Web
There are a lot of resources out on the internet, and when you go to a web page it's referencing a lot of resources. So how do we reference all of these different resources out there? We do it through a uniform resource identifier. This is a way of creating a request for a specific resource, and of identifying a specific resource out there. A uniform resource identifier, or URI, identifies all these resources, or even a specific component of these resources.
I've got an example here. We're going to be referencing this page, or this website, www.techknowsurge.com. There are different components to all of this, and some are necessary while some are not. You could see this come into a lot of different examples within this, so let's take a look at each one of the components and then identify what would be alternatives to this.
First of all, what we have right here is HTTP. That's identifying the communication protocol that we're going to use. It doesn't have to be just HTTP. That's one of the most common ones, but it could be FTP, or mailto, or file, or data. So it could actually address many different protocols, and different things that we're trying to access here.
The next is user info. We've got user info and an at sign. If we are FTPing into something we may need to specify a user, or if the web page has some sort of security we could specify a user in this case. So that's everything before the at symbol. This is one of those optional things, as there are many times that we address a resource or go to a web page without the user attached to this. In fact, probably more often than not, most often we are not using a user to access at least web pages.
Then we have www.techknowsurge.com. We talked about those domains and how those domains get identified, and the host on that domain. When we go and get the domain information from it, we then translate that to an IP address, so this gets replaced with an IP address.
But then we also have the port that's associated with it. We know that an IP address and port creates a socket, so we've got a port right here. We know there are standard ports. If we are typing this into a browser, then perhaps it's just port 80. A lot of times when we're doing web traffic it's just port 80, and so we would not need to include it if it was port 80 in a browser, because it would just assume that. Or perhaps we're SSHing into something, and that would be assumed to be port 22 unless it was a different port. If it was a different port, then we'd have to change that and add a different port in there.
Then we have a path right here. The path would be on the server. Whatever server is hosting out that web page, the path would be perhaps like a folder that that content resides within.
After that we have a document that we're actually accessing. So this is page.html, or by default a lot of the main pages, when you get into a web page, would be index.html. We've got the name of the document and the extension of that document, essentially the format of that document. In this case we'd be getting HTML.
Then anything after the question mark here is a query. The question mark would be to pass certain information off to it, or pass query parameters off to it. And a fragment would be like a section of that page that we're referencing.
Once again, there are a lot of these components that are not necessary, and you can have any one of these combinations, but this is how we identify specific resources that are out on the internet. We call this a uniform resource identifier.
You may not hear URI used as much as URL, so what is the difference? Sometimes we use the two terms interchangeably. When you hear somebody use the term URL, they could be referring to the URI, or vice versa. The URL is just a subset of the information that's found in the URI. Here we have the protocol, the domain host, the domain and the path, and the resource itself. So this is what makes up the URL. You might hear those two terms interchangeably, but there is technically a difference between the URL and the URI, and the URL is a subset of the URI.
I also want to make another point here, and that is with HTML. You've probably heard of hypertext markup language, which is what is constructed in a web page. It gives the instructions to the browsers on how to display something. An HTML page is sent to the browser, and the browser then represents the information.
So HTML is a type of format. It's a type of format for a file, so it's a file format. It is not a transport protocol. HTML would not be an application layer transfer protocol. Hypertext transfer protocol is a method of transferring data. HTML is not a method for transferring data. It's more of a way to display data, and it's a page file. It's a file format for a page.
I also want to call attention to something else, something that's called relative versus absolute references. You'll find this no matter what system you're in, whether it's a command prompt and you're in a certain prompt, or if it's a Linux machine, or if you're in a web browser and it's accessing certain resources. There are ways that we reference different resources.
As an example, let's say I'm buried somewhere deep within a path and I want to reference a resource within that path. I can do a relative reference, and that is, I can just type out the name of whatever resource I want to access. So within there, if I want to access a certain resource, I just type out that name and then I can access that resource.
But if I want to reference somewhere else on that machine, somewhere where I'm not in right now, somewhere that's not associated with that, then I can do an absolute reference and include the whole path to get to that resource. Then it doesn't matter where within the file structure or within whatever directory I am, I can reference that same thing.
Same thing with web pages. I could reference the whole URL here and reference a specific resource, and then it could be on whatever site I want to reference it on. Although if I'm on a certain site and I reference a specific resource within there, then I'm only referencing the resource if it exists on that site. So the difference is whether you want to globally address something that's out there, or whether it wants to be specific to whatever site you're in or whatever directory that you're in. That's the difference between relative and absolute references.
As we said, HTTP is an application layer protocol that's used to transfer resources back and forth. What does it look like? We already talked about the URI that references a specific resource, and even maybe a specific location on that resource. We use this URI or URL to get to these different sites, and then HTTP is the protocol that is used to go and get that information, or download that information, or get it to your computer so that way it can be displayed.
So you type into your browser the URL that you want to get to, you hit enter, and then it goes and gets the information. That is a specific request where it is going to get information. We see right here that one of the requests is get, but there's actually quite a bit more, whether it's head, post, put, delete. If we want to post or update something, then we could use post. If we want to delete something, then we can use delete. So there are quite a few other commands that we can work with when we are working with HTTP, depending on what we want to do: if we want to upload something, or if we're trying to get something. A lot of these commands you'll actually see happening behind the scene and you don't realize that they're happening, but these are some of the few commands that can be executed with HTTP.
So you've typed www.techknowsurge.com into your browser and hit enter. It goes and gets that information. It's doing a get request to get that information, and let's say it's loading the index page up. So index.html is coming back to your browser and it's getting loaded up into your browser so you can view the site, so you can view the main page on that site. What you've done is you're successfully getting that page.
There is a bit of information that comes back with that. If we are successfully loading up that page, then we have a 200 message. So it comes back with a response of 200, and it could be 2011, 202, 203, depending on what type of success it is. But we're just representing it as a 200, a 2x, meaning that you are successful with loading that up.
However, there is other information that can get to us also. For instance, let's say I chose to redirect my site, maybe I'm sending you to example.com instead. Or perhaps you have reached my port 80, my HTTP, and I want to redirect you to HTTPS, port 443. I send a redirect. That could be an absolute or a relative redirect, and I'm sending you to another page, or I'm sending you to another site. There are different types of redirects, but they all fall in the 300 range, so it could be 301, 302, or so. The 300 message that you get back means it's a redirection.
If you get a 400 error, like a 404, that means it's a client error. Maybe you tried to access a page that just doesn't exist. Then you're getting a 404 error: that page doesn't exist. So that's a client-side error.
If you get a 500 error back, then that means that the server understands your request to a certain degree, but it's having some sort of problem on the back end. For instance, let's say it can't access the database server. It sends you a 500 error saying, I just can't complete your request because I don't have access to the resource that I should have access to.
And then the hund message is just informational, sending some sort of information message.
TechKnowSurge builds IT and cybersecurity professionals through hands-on, concept-first training built around real understanding — not memorization. Free interactive tools, structured programs, and 25+ years of real-world experience, all in one place.
Explore free tools and programs →