在浏览器中输入网址后都发生了什么

来源:互联网 发布:伏尔加河上的纤夫知乎 编辑:程序博客网 时间:2024/04/29 09:18

本文转载至:http://www.cricode.com/3696.html

输入网址后……

如上图所示,为在浏览器中输入网址后的示意图。

1.浏览器发起DNS查询请求

在广域网中,我们是基于IP地址进行通信的。但通常客户访问的是一个网址,为此,我们需要先得到网址对应的IP地址,这就需要域名服务系统将域名转换成IP地址。如下图所示,在客户端浏览器中输入网址:http://www.cricode.com时,浏览器会根据本地客户端DNS服务器配置(下图为DNS服务器配置),向DNS服务器获取域名对应的IP地址。

域名解析服务器是基于UDP协议实现的一个应用程序,通常通过监听53端口来获取客户端的域名解析请求。

2.域名服务器向客户端返回查询结果域名,从而完成域名到IP地址的转换。

3.客户端向web服务器发送HTTP请求

在得到了域名对应的IP地址后,客户端便可以向真正的web服务器发生HTTP请求了。通常一个HTTP请求格式如下:

HTTP请求是一个基于TCP协议之上的应用层协议——超文本传输协议。浏览器通过DNS获取到web服务器真的IP地址后,便向web服务器发起tcp连接请求,通过TCP三次握手建立好连接后,浏览器便可以将HTTP请求数据通过发送给服务器了。

4.发送响应数据给客户端

Web服务器通常通过监听80端口,来获取客户端的HTTP请求。与客户端建立好TCP连接后,web服务器开始接受客户端发来的数据,并通过HTTP解码,从接受到的网络数据中解析出请求的url信息以前其他诸如Accept-Encoding、Accept-Language等信息。

Web服务器根据HTTP请求头的信息,得到响应数据返回给客户端。

一个典型的HTTP响应头数据报如下:

至此,一个HTTP通信过程完成。web服务器会根据HTTP请求头中的Connection字段值决定是否关闭TCP链接通道,当Connection字段值为keep-alive时,web服务器不会立即关闭此连接。

0 0