TechKnowSurge
Cisco CCNA 6.5 Cisco CCST Networking 1.5 CompTIA Network+ 1.4 Cisco CyberOps Associate 2.6
VideoNetworkFree

Internet and the World Wide Web

This content covers the foundational technologies behind the internet and web, including URIs, URLs, HTML, HTTP methods, status codes, and HTTPS with certificates.

Complete this video to capture a CTF flag worth 1 point.

About this video

Identifying resources on the internet begins with the Uniform Resource Identifier, or URI, a structured syntax that specifies how to locate any resource across a network. A URI is composed of several components — the protocol scheme (such as HTTP, FTP, or mailto), an optional user credential field, the host domain, an optional port number, a server-side file path, a document name, optional query parameters, and a fragment identifier. Most of these components are optional and context-dependent; for example, browsers assume port 80 for standard HTTP traffic and port 22 for SSH unless otherwise specified. The URL, which is the more commonly referenced term, is technically a subset of the URI, containing the protocol, host, path, and resource, and the two terms are often used interchangeably in practice. HTML, or Hypertext Markup Language, is the file format used to structure and present content in a web browser. It is important to distinguish HTML from HTTP: HTML is a page file format that instructs browsers on how to display content, while HTTP is the application-layer transfer protocol responsible for moving that content between server and client. Related to resource referencing is the concept of relative versus absolute addressing — a relative reference points to a resource within the current directory or site context, while an absolute reference includes the full path or URL and can point to any resource regardless of the current location. HTTP defines a set of methods that determine the type of action being requested, including GET for retrieving content, POST for submitting data, PUT for updating resources, and DELETE for removing them. When an HTTP request is processed, the server returns a numeric status code indicating the outcome: 200-range codes signal success, 300-range codes indicate redirects (such as being forwarded from HTTP on port 80 to HTTPS on port 443), 400-range codes reflect client-side errors such as requesting a nonexistent page (404), and 500-range codes indicate server-side failures where the server cannot fulfill an otherwise valid request. Securing HTTP communication involves implementing HTTPS, which encrypts the connection using certificates, protecting data in transit between client and server.

What you'll learn

What's covered

Internet & World Wide Web

Aligned to

Cisco CCNA
6.5 Describe characteristics of REST-based APIs
Cisco CCST Networking
1.5 Describe common network applications and protocols
CompTIA Network+
1.4 Explain common networking ports, protocols, services, and traffic types
Cisco CyberOps Associate
2.6 Describe web application attacks

Key terms

Uniform Resource Identifier
URI
A string of characters that uniquely identifies a specific resource on the internet, including components such as protocol, host, path, query, and fragment.
Uniform Resource Locator
URL
A subset of the URI that specifies the location of a resource by including the protocol, host, path, and resource name.
Protocol
A set of rules governing the format and transmission of data between devices.
Hypertext Transfer Protocol
HTTP
An application-layer protocol that defines how web browsers and servers communicate to request and deliver web pages and other content, operating over TCP on port 80. HTTP transmits data in plaintext, which is why it has been largely replaced by HTTPS for sensitive content.
HTTP Method
A command sent in an HTTP request that specifies the desired action, such as GET to retrieve, POST to submit, PUT to update, or DELETE to remove a resource.
HTTP Response Code
A three-digit status code returned by a server indicating the result of an HTTP request, grouped into categories: 1xx informational, 2xx success, 3xx redirection, 4xx client error, and 5xx server error.
Application Layer
The topmost layer of the OSI model (Layer 7) that provides network services directly to end-user applications.
Domain Name System
DNS
A hierarchical naming system that translates human-readable domain names into IP addresses.

Transcript

Uniform resource identifiers

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.

URI versus URL

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.

HTML is a file format, not a transport protocol

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.

Relative versus absolute references

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.

Hypertext transfer protocol

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.

Response codes

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.

About TechKnowSurge

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 →