问题情景
我在看完图解HTTP和图解TCP后对整个计算机网络的脉络有了一些了解。但是对于输入网址到网页这中间到底发生了什么?我只能说出个大概,却不能清楚的知道这中间的流程。
分析:
所以画了个思维导图~
lol
总结
- 先解析URL,生成HTTP请求消息。
- 然后通过DNS服务器查询域名对应的IP地址,本地DNS服务器会查询有没有这个域名的信息,如果有就直接返回,否则就要去根域名服务器,顶级域名服务器和权威域名服务器依次询问。
- 在知道了IP地址后,我们就要开始准备传输了,首先是进行TCP的可靠传输,经过三次握手建立连接后,就要委托IP模块将数据封装成网络包发送给通信对象,也就是加上IP头部。
- 有了IP头部就还需要用于两点传输的MAC头部。在这个过程中,如果我们只知道IP地址,而不知道MAC地址,就需要使用ARP协议在以太网进行广播的形式询问。
- 接下来就是通过交换机和路由器进行传输到服务器了。
- 服务器收到数据包后,会扒开数据包的MAC头部,查看是否和服务器自己的MAC地址符合,接着扒开数据包的IP头和TCP头部。发现TCP头部里面有个端口号,HTTP的服务器正在监听这个端口号。
- 于是服务器就知道HTTP进程想要这个包。 于是将包发放HTTP进程。服务器的HTTP进程看到后,知道这个请求是想要访问一个页面,于是把这个网页封装到HTTP响应报文里面。同样的加上TCP,IP,MAC头部。
- 客户端收到服务器的响应数据包,客户端也会开始扒皮。最后把响应报文交给浏览器去渲染页面。