Encryption is used to keep data secret. In its simplest form, a file or data transmission is garbled so that only authorized people with a secret "key" can unlock the original text. If you're using digital devices then you'll be using systems based on encryption all the time: when you use online banking, when you access data through WiFi, when you pay for something with a credit card (either by swiping, inserting or tapping), in fact, nearly every activity will involve layers of encryption. Without encryption, your information would be wide open to the world – anyone could pull up outside a house and read all the data going over your WiFi, and stolen laptops, hard disks, and SIM cards would yield all sorts of information about you – so encryption is critical to make computer systems usable.
An encryption system often consists of two computer programs: one to encrypt some data (referred to as plaintext) into a form that looks like nonsense (the ciphertext), and a second program that can decrypt the ciphertext back into the plaintext form. The encryption and decryption are carried out using some very clever math on the text with a chosen key. You will learn more about these concepts shortly.
Of course, we wouldn't need encryption if we lived in a world where everyone was honest and could be trusted, and it was okay for anyone to have access to all your personal information such as health records, online discussions, bank accounts and so on, and if you knew that no one would interfere with things like aircraft control systems and computer controlled weapons. However, information is worth money, people value their privacy, and safety is important, so encryption has become fundamental to the design of computer systems. Even breaking the security on a traffic light system could be used to personal advantage.
In this lesson, students are introduced to another high-level protocol of the Internet, HTTP. The lesson begins with a review of the layers of the Internet covered thus far, before transitioning to a video covering high-level protocols of the Internet, most notably HTTP. Students will investigate HTTP traffic generated within their own browser by accessing the browser’s developer tools and visiting a variety of websites. A handout summarizing the structure of HTTP is provided to help students understand the components of the HTTP requests and responses they will observe. The lesson concludes with students sharing their findings with their classmates and a reflection on how the layers of the Internet make use of abstraction.
The main purpose of this lesson is round out understanding of one of the main Enduring Understandings and associated Learning Objective of the CSP Framework:
There are two main purposes of this lesson:
First, simply getting a basic understanding of what HTTP is and what it's for. HTTP, like DNS, is an ASCII-text based protocol - it's just two computers sending text messages to each other. What makes it a protocol are the rules of the "conversation" the two machines are having. In the case of HTTP, it is a call-and-response protocol for a client/server relationship, where a client requests a web page or other content (image, sound, video, etc.) from a server. The server looks for it and sends it back.
Second and perhaps more importantly, is understanding HTTP as a "high level" protocol that sits on top of all the other protocols and internet systems we've learned about in the course. That text message conversation between the computers is being broken up into TCP/IP packets, and all the data gets sent as bits over wires and airwaves, taking different paths, and it gets interpreted and reassembled at the end.
We often talk about how the Internet works in "layers" and this is a perfect example of abstraction on the Internet, as one layer makes use of the functionality provided by the layer below it, without worrying about the details of how this functionality is achieved. HTTP doesn't have to worry about anything other than the text protocol of HTTP works. The network software and devices on your and others' computers handle looking up addresses, breaking down data, packeting, routing, transmission, interpretation, and reassembly. It's really amazing.
What we want students to understand is some degree of the "Big Picture". We want them to be able to recognize that these layers exist and to reasonably explain how they work together for common web page requests.
Students will be able to:- explain how layers of protocols allow the Internet to function.- use developer tools in a modern browser to explore the HTTP traffic associated with visiting common websites.- identify abstractions used in the development of Internet protocols.- describe how a protocol or layer of the internet acts as an "abstraction" for other layers.
Note: You will need to create a free account on code.org before you can view this resource.