第一步:浏览器做的第一步工作是解析URL,解析之后浏览器确定了web服务器和文件名,接下来根据 这些信息生成HTTP请求信息,从而生成发送给Web服务器的请求信息。
第二步:通过浏览器解析 URL 并生成 HTTP 消息后,需要委托操作系统将消息发送给 Web 服务器。
但在发送之前,还有一项工作需要完成,那就是查询服务器域名对应的 IP 地址,因为委托操作 系统发送消息时,必须提供通信对象的 IP 地址。
第三步:通过 DNS 获取到 IP 后,就可以把 HTTP 的传输工作交给操作系统中的协议栈。
协议栈的内部分为几个部分,分别承担不同的工作。上下关系是有一定的规则的,上面的部分 会向下面的部分委托工作,下面的部分收到委托的工作并执行。应用程序(浏览器)通过调用 Socket 库,来委托协议栈工作。协议栈的上半部分有两块,分别是负责收发数据的 TCP 和 UDP 协议,这两个传输协议会接受应用层的委托执行收发数据的操作。协议栈的下面一半是用 IP 协议控制网络包收发操作,在互联网上传数据时,数据会被切分成一块块的网络包,而将网 络包发送给对方的操作就是由 IP 负责的。
第四步:浏览器与服务器建立TCP连接
第五步:浏览器发出取文件命令
第六步:服务器响应
第七步:释放TCP连接
第八步:浏览器显示