Reading Protocols and Standards (WIP)

Purpose

While not as precise as computer source code, protocols and standards can be a great resource from time to time. In this lesson, we spend some time learning about RFCs, how to read them, and then explore RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, in detail.

Learning Material

Read through this post about reading RFCs.

Read RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.

Browse through the full table of contents of the HTML standard. Read through section 1 carefully.

Exercises

To learn as much as possible from these exercises, write your responses before revealing the provided answers. If any exercises seem irrelevant, you can skip them and instead write a justification as to why they are unimportant. These justifications will help us improve the lesson for future students.

Exercise 1

What is the purpose of a URI?

Answer

TODO: Write answer

Exercise 2

Give two examples of commonly used “schemes.”

Answer

TODO: Write answer

Exercise 3

What is URI normalization? When is it important that a URL be normalized?

Answer

TODO: Write answer

Exercise 4

How does percent encoding work?

Answer

TODO: Write answer

Exercise 5

What are absolute vs relative URIs? What are the advantages and disadvantages of each?

Answer

TODO: Write answer

Exercise 6

Following the collected ABNF for URIs in Appendix A, draw a tree diagram that demonstrates the parts and subparts of https://www.google.com/search?source=hp&q=dicom#ed_8

Answer

TODO: Write answer

Exercise 7

Select an aspect of HTML that you wish you understood better, and spend some time reading the relevant section of the HTML standard. Familiarize yourself with any relevant terms, and write a few notes from what you have learned.

Answer

TODO: Write answer

Continuous Lesson Improvement

Please help us make these lessons as relevant and up-to-date for future engineers as possible!

You can help in several ways:

  • Shorten or clarify the writing. We're all busy and less is more.
  • Ask if the purpose of the lesson is unclear. We want all of the lessons to seem useful.
  • Remove exercises or learning material that aren't useful.
  • Add more exercises, exercise answers, or learning material as appropriate.

You can quickly open the lesson page in the GitHub editor. Create a new branch and pull request and assign it to David.