普通工程师的HTTPS指南
As a mediocre engineer, I took Internet and HTTPS communication for granted and never dove any deeper. Today we’re improving as engineers and learning a rough overview of how internet communication works, specifically focusing on HTTP and TLS.
The Internet is “just” a network of interconnected computer networks. The term "Internet" literally means "between networks." It operates as a packet-switched mesh network with best-effort delivery, meaning there are no guarantees on whether a packet will be delivered or how long it will take. The reason why the internet appears to operate so smoothly (at least from a technical perspective) is the layers of abstraction that handle retries, ordering, deduplication, security and so many other things behind the scenes. Letting us developers just focus on the application layer (aka. Writing HTTP requests from San Francisco for $300K/year).
Each layer provides certain functionalities, which can be fulfilled by different protocols. Such modularization makes it possible to replace the protocol on one layer without affecting the protocols on the other layers.
作为一名平庸的工程师,我认为互联网和HTTPS通信是理所当然的,从未深入研究过。今天,作为工程师,我们正在改进和学习互联网通信工作原理的大致概述,特别关注HTTP和TLS。
互联网“只是”一个由相互连接的计算机网络组成的网络。“Internet”一词的字面意思是“网络之间”。它作为一个数据包交换网状网络运行,尽最大努力交付,这意味着不能保证数据包是否会被交付或需要多长时间。互联网看起来运行得如此顺畅(至少从技术角度来看)的原因是它的抽象层处理重试、排序、重复数据删除、安全性和许多其他幕后的事情。让我们开发人员只关注应用层(又名。在旧金山写HTTP请求,每年30万美元)。
每一层提供特定的功能,这些功能可以通过不同的协议来实现。这样的模块化使得在不影响其他层上的协议的情况下替换一层上的协议成为可能。