访问网页时发生了什么
当用户在浏览器地址栏输入地址,敲下回车键,直到看到网页界面,一般事件不过两三秒左右。然而在这瞬间时间,计算机实际上已经完成了非常复杂的操作。这段过程中发生的事情,其实有很大一部分就与HTTP TCP/IP有关,我们可以简要的概括一下大概的流程
一、找服务器IP
当用户输入一个网址并按下回车键的时候,浏览器得到了一个域名。而在实际通信过程中,浏览器需要的是一个IP地址。为了获得IP地址,浏览器会做如下操作,一般我们把浏览器通过域名查找对应IP的行为叫做DNS(域名系统Domain [də(ʊ)'meɪn] Name System,是互联网的一项服务)解析
1.找浏览器的本地的缓存
2.再找电脑硬盘里的host文件,有么有记录这个域名和IP的映射关系
3.实在没找到,只好通过网络链路去域名供应商那里查询
二、建立TCP/IP连接
1.浏览器获取到了服务器对应的IP,就会向对应的IP服务器发送TCP(Transmission Control Protocol 传输控制协议)连接请求
2.服务器收到请求后回应,双方多次确认后建立TCP双向连接。
从客户端发起连接请求一直到TCP连接建立,这个过程,叫做三次握手
如果请求时HTTPS的,还需要再TCP连接上,再通过SSL或TLS提供的加密处理数据、验证对方身份以及数据完整性,来保证数据传输的安全
三、请求资源
1.TCP连接创建完成,浏览器开始向服务器发送正式的HTTP请求的数据包
2.服务端接受请求,对请求进行解析,经过数据操作后,返回客户端需要的数据包
四、浏览器渲染
浏览器获取到需要的数据以后,对数据进行拼接、解析、执行,最终将完整的网页绘制在网页上。
五、浏览器缓存
浏览器拿到服务器返回的数据后,会根据一定的策略进行数据缓存,这样在下一次请求同样数据的时候,就可以直接到缓存拿取,不再请求服务器。