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

To learn as much as possible from these exercises, we recommend that you write your response, 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

Continuous Lesson Improvement

Open the lesson page in the GitHub editor.

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!

Create a new branch and pull request and assign it to your lesson mentor. The available lesson mentors are included in the YAML front matter of the lesson. They will set up a time to review your suggested changes and to talk through your exercises for the lesson.

After the review add your self to the "completed" property in the lesson's YAML front matter and merge in your changes!