Notes/Feedback/Typo fixes (unfinished!)

This commit is contained in:
haydendavenport 2022-05-28 18:09:06 +00:00
parent c55f1d212e
commit 2f70356c68
1 changed files with 32 additions and 6 deletions

View File

@ -13,12 +13,12 @@
## Starting from HTTP
HTTP (Hypertext Transfer Protocol), is what browsers use talk to web servers to send and receive web pages,
HTTP (Hypertext Transfer Protocol), is what browsers use to talk to web servers to send and receive web pages,
do basic transactions, like sending a form from your browser to the server, requesting some database
information for display, or updating your account settings.
Good learning resources for HTTP:
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview [NOTE(hayden): This link mentions proxies -- do those proxies use TCP to transfer the HTTP messages?]
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages#http_requests
<-- Link to expanded, less curated library of topical info -->
@ -27,22 +27,23 @@ Good learning resources for HTTP:
## Diving into the meat and potatoes with TCP and IP
HTTP responses and requests are a sequence of bytes, chunked up and sent in packets,
often through a protocol called TCP (Transmission Control Protocol). TCP provides a few
often [NOTE(hayden): "often" -- should exceptions be mentioned?] through a protocol called TCP (Transmission Control Protocol). TCP provides a few
nice guarantees which make writing reliable network code a little easier.
When a message gets sent via TCP, it ensures that chunks get passed to the application
in order. If packets get dropped along the way, or arrive out of order, TCP handles resending
missed packets and buffering before the application gets the packet, until order can be restored.
Good learning resources for TCP:
[NOTE(hayden): The first video here mentions ports -- as if they are already understood (and previous articles briefly mentioned them). Should ports have their own section befor this?]
- https://www.youtube.com/watch?v=4IMc3CaMhyY
- https://www.youtube.com/watch?v=F27PLin3TV0
- https://www.youtube.com/watch?v=IP-rGJKSZ3s
- https://www.youtube.com/watch?v=IP-rGJKSZ3s [NOTE(hayden): I think this link in particular needs further context (although I do understand why it is relevant, especially given the previous video)]
<-- Link to expanded, less curated library of topical info -->
<-- Branch into UDP, QUIC, TLS, etc. via link here -->
IP (Internet Protocol) sits directly below TCP, but often gets bundled together. IP is a
small header attached right above the protocol header, and contains important information,
small header attached right above the protocol header [NOTE(hayden): Which protocol? TCP?], and contains important information,
like where the packet is coming from, and where the packet needs to go, so network hardware
along the way can route it from A->B to reach it's destination
@ -216,4 +217,29 @@ But also, it tells you where your mail server is, how to get fortune cookies, an
TLS 1.2/1.3
https://tls12.ulfheim.net/
bearSSL
bearSSL
----------
Hayden's Notes:
* If HTTP is a transfer protocol, I'm confused about why TCP is necessary -- why does a transfer protocol need a second transfer protocol to transfer itself? lol
* Each of the links should probably have their own slight preface, explaining what you will learn by following the link. The Odin Project does this, and I think that's generally a good pedagogical approach (before you learn, you are given context about what you are going to learn)
* Holistic learning should probably include video and articles, so I'd recommend having both types whenever possible for each topic. I can certainly help with this!
My attempt to understand:
- HTTP are simple requests for information, and responses to those requests
- On top of this, TCP is used to "oversee" the reliable transmission of these files, ensuring proper ordering and that nothing is lost. This is necessary, since it often requires many computers all over the globe to route information to the correct location
- IP is an additional layer, often bundled with TCP, that provides information regarding where the HTTP requests should be routed
* An analogy for the above would be amazing. Relate it to what a USPS facility might be responsible for on a given day, perhaps? Is the below analogy accurate at all?
* HTTP is the request to Amazon to buy a product? "I want this product sent to my address"
* HTML is the contents of the contents of the package you will receive -- the final product itself
* TCP is the information USPS uses internally to move the package from facility to facility, until it arrives at your address. Each facility is a proxy.
* IP is the SHIPPING LABEL telling USPS where the information should arrive
* Is there an analogy for the box itself -- a container that holds the "product"? Packets, perhaps?
* Maybe the entire analogy should be multiple packages. Amazon sending you one part of a product at a time rather than an entire product?