Reading Protocols and Standards

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

We recommend that you write your response to each question, before revealing the provided answers.

Exercise 1

What is the purpose of a URI?

Provided Answer

TODO: Write answer

Exercise 2

Give two examples of commonly used “schemes.”

Provided Answer

TODO: Write answer

Exercise 3

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

Provided Answer

TODO: Write answer

Exercise 4

How does percent encoding work?

Provided Answer

TODO: Write answer

Exercise 5

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

Provided 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

Provided 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.

Provided Answer

TODO: Write answer

Improvements and Completion Pull Request

Using a local copy of the website, start a git branch.

Remove any exercises or learning material that are not useful to the intended audience. Find ways to shorten and clarify the writing. Add generally useful exercises, responses, or learning material. Your improvements will make our training program great!

Add your self to the "completed" property in the lesson's YAML front matter.

Create a pull request and assign it to your lesson mentor (e.g., David). They will review and set up a time to talk through the lesson. After the lesson merge in your changes.