This project provides games for high school / secondary school computer scientists to learn about how browsers work and what security bugs might exist in them.
See Contributing to contribute.
See For Teachers, and setup.
If your teacher has already run through the setup instructions, or you're comfortable doing them yourself, then proceed to the actual content below.
- Exercise 1a: Use a real browser. Navigate to wikipedia. View source. Find some things in the HTML.
- Exercise 1b: Use our mini Python browser. Go to the same place. Look in
the code of our Python browser to see how it handles
b
anda
tags. - Exercise 1c: Run our mini Python web server. Create your own HTML file. See how the browser responds.
- Exercise 2a: Add support for italic text in the browser.
- Exercise 2b: Add support for
font color
or similar. - Exercise 2a: Add word wrap in the browser. (HARD!)
- Exercise 2d: Invent your own HTML tag. Add it to the browser and to some HTML pages in the server. See how it works end-to-end.
- Exercise 3a: See the web traffic flowing between the mini browser and the mini server when using HTTP. See what happens when you try different URIs. See what happens when different types of error occur.
- Exercise 3b: Try the same with HTTPS.
- Exercise 4a: Find some security bugs hidden in the code of our mini browser.
- Exercise 4b: Write a program that finds bugs in another program (a "fuzzer").
If you enjoyed this project, eee also browser.engineering, another Python demonstration browser! browser.engineering goes much further than this browser - it includes JavaScript, CSS etc. - with commensurately more complex code and runtime needs.