一、写在开头
本文的主题是和大家一起探讨学习:“在浏览器中输入URL开始后,计算机所做的几件事”,这个问题是好几年前自己面试的时候,面试官考问过的,当时准备十分不充分,回答的一塌糊涂,今天拿出来再整理学习一遍,一同进步!
其实这个问题本身倒是不难,但它巧妙的是可以将我们所学过的网络编程知识给串联起来,面试官仅仅通过一个问题就可以考察出我们对于这部分知识的掌握程度。那么我们今天也以此为题展开网络编程的正式学习啦!
二、访问网页的底层运行机制
如上图所示,当我们在浏览器的搜索框中输入了“www.baidu.com”并回车后,浏览器就跳转到了百度的首页中,这个过程计算机做了哪些操作呢?
1. 在浏览器中输入指定的URL地址;
2. 浏览器通过DNS协议(域名解析协议),获取域名所对应IP地址;
3. 浏览器根据获取到的IP+端口,向目标服务器端发动一个TCP连接请求;
4. 经过三次握手后TCP连接成功,浏览器会在该TCP连接上发送一个HTTP请求报文;
5. 服务器处理HTTP请求后,反馈响应报文给浏览器;
6. 浏览器收到 HTTP 响应报文后,解析响应体中的 HTML 代码,渲染网页的结构和样式,同时根据 HTML 中的其他资源的 URL(如图片、CSS、JS 等),再次