有人可以告诉我从我在浏览器中键入URL到我在浏览器中看到页面之间发生的所有幕后情况吗?详细说明该过程将有很大帮助。
有人可以告诉我从我在浏览器中键入URL到我在浏览器中看到页面之间发生的所有幕后情况吗?详细说明该过程将有很大帮助。
Answers:
注意:这是一个非常粗糙且过于简化的草图,假设最简单的HTTP请求(没有HTTPS,没有HTTP2,没有额外功能),最简单的DNS,没有代理,单栈IPv4,仅一个HTTP请求,一个简单的HTTP服务器另一端,任何步骤都没有问题。就大多数当代意图和目的而言,这是不现实的情况;所有这些在实际使用中都更加复杂,并且自编写以来,技术堆栈就变得更加复杂了一个数量级。考虑到这一点,以下时间表仍然有效:
同样,对这些要点的讨论充满了无数篇幅。仅将此作为摘要,为清楚起见而略去。此外,与此同时还发生了许多其他事情(处理键入的地址,推测性的预取,将页面添加到浏览器历史记录,向用户显示进度,通知插件和扩展名,在下载过程中呈现页面,管道化,保持活动状态,Cookie管理,检查恶意内容等),而使用HTTPS(证书,密码和固定,哦,我的天!)会使整个操作复杂一个数量级。
查找HTTP规范。或者要开始使用,请尝试http://www.jmarshall.com/easy/http/