Application Layer Protocols
The Application Layer is the topmost layer of the Internet Protocol and is focused on providing services to the applications that we use. There are many different protocols that are used on the application layer: HTTP, HTTPS, FTP, SMTP, DNS, IRC to name a few. We will be focusing on HTTP and IRC.
HTTP
HTTP (Hyper Text Transfer Protocol) is the major protocol responsible for providing us with the World Wide Web which perhaps unsurprisingly is one of (if not THE) greatest uses of the Internet. The purpose of HTTP is to connect a user to a server that hosts web content, create a connection, then send requests back and forth between the client (the computer that you are using to browse the web) and the server (computer somewhere out in the wilds of the Internet).
A typical scenario using HTTP will go something like this:
More information on HTTP:
CS Field Guide
Khan Academy - HTTP
Read this page at geeks for geeks until the PATCH & DELETE requests
Tasks:
1) Using this page and the accompanying resources, in your notes write a description of what HTTP requests happen when you go to YouTube and request a video. Hint: it's helpful to check out the "Network" tab in Developer Tools (right click and go inspect, or press F12).
2) Do some research of your own on TLS (hint: Khan academy is helpful). Using this information, do your best to explain in 150 words how this is used to make HTTP more secure (HTTPS).
3) Identify which HTTP request you feel would be best for these scenarios and give a short explanation why:
A typical scenario using HTTP will go something like this:
- You look up a web address in your browser. If you have been there before then your local cache will probably have the IP address for it, otherwise it will ask a domain name server (DNS) to provide it to you. All web addresses are linked to a unique IP address, domain name servers keep a record of these and provide them to us.
- Once it has the IP address, your browser will send an HTTP request to that computer asking for content.
- The server receives the request and sends its own request back as confirmation.
- After sending the confirmation the server will then send the actual content that was requested: web page, video, image, etc.
- The client receives the content and renders it in the browser.
More information on HTTP:
CS Field Guide
Khan Academy - HTTP
Read this page at geeks for geeks until the PATCH & DELETE requests
Tasks:
1) Using this page and the accompanying resources, in your notes write a description of what HTTP requests happen when you go to YouTube and request a video. Hint: it's helpful to check out the "Network" tab in Developer Tools (right click and go inspect, or press F12).
2) Do some research of your own on TLS (hint: Khan academy is helpful). Using this information, do your best to explain in 150 words how this is used to make HTTP more secure (HTTPS).
3) Identify which HTTP request you feel would be best for these scenarios and give a short explanation why:
- Retrieving a web page
- Submitting a login form
- Search for products on Temu
- Updating user profile information
- Adding an item to a shopping cart
- Retrieving a list of orders
- Deleting a user account
- Uploading a file
- Voting on a poll
- Getting weather data
- Sending a message in discord
IRC
IRC is one of the earliest methods for chat available on the Internet. IRC uses a client-server model, this means that there is one main computer that hosts/facilitates all of the other computers that connect to it. Once you have IRC client software of some type on your machine you can connect to the server address and begin to chat (provided they haven't implemented extra security).
The server hosts "Channels" where most conversation occurs. A client will send information (text, media, etc.) to a particular channel on the server, the server will then disseminate this out to its connected clients.
If you have used Discord (which most of you likely have) this will seem very familiar as Discord has a similar set up. A major point of difference is that Discord uses HTTP (see above section), whereas IRC is its own dedicated protocol for chat.
For more information read this section of the CS Field Guide.
Task:
Imagine you're a new user on an IRC network: Write a short paragraph explaining how you would join a specific channel and introduce yourself to the community. Use the above information to help you and do further research. Hint: you will need to describe the use of IRC commands.
The server hosts "Channels" where most conversation occurs. A client will send information (text, media, etc.) to a particular channel on the server, the server will then disseminate this out to its connected clients.
If you have used Discord (which most of you likely have) this will seem very familiar as Discord has a similar set up. A major point of difference is that Discord uses HTTP (see above section), whereas IRC is its own dedicated protocol for chat.
For more information read this section of the CS Field Guide.
Task:
Imagine you're a new user on an IRC network: Write a short paragraph explaining how you would join a specific channel and introduce yourself to the community. Use the above information to help you and do further research. Hint: you will need to describe the use of IRC commands.