这篇文章主要是个人理解,所以偏白话一点。具体细节的话读者可参考《http图解》
一,首先咱们应该知道几个专业词汇
(TCP/IP协议)是指互联网相关的各类协议族的总称
1.(浏览器缓存)从输入url开始,第一步当然是看看有没有相应的缓存解析,如果有的话,直接渲染缓存中的页面就好
2.(DNS)如果没有缓存的话,就会开始DNS解析,毕竟域名是为了方便我们记住,DNS可以解析出目标的ip地址,我们的目标就是这个ip
3.(TCP)tcp协议是为了在传输过程中保证数据的安全和稳定的(咱们所说的三次握手和四次挥手都属于tcp协议)
4.(HTTP)http协议,就是将我们传输和接受到的内容,分成需要的格式(请求头,请求体)
5.(IP)ip协议可以理解为在找到目标服务器之前,作的一次次中转,最早的ip地址可能只是指向一个路由,路由解析出对应的mac地址然后找向下一个路由。。。最后找到目的地的ip地址(我理解的话,高并发时,让不同的服务器来分担请求可能就跟这有关,毕竟每一次中转,都可以做校验呀,相应请求之类的。当然我还没学过,哈哈,以后学到了再来完善)
6(DOM树)接受到响应之后,就根据咱们的html(DOM树),css(CSS规则树)解析出render树结构渲染(回流,重绘)渲染页面
二,给一个方便一点的图(http图解原图,这个很清楚的展示了请求到响应的过程)
三,总结
TCP/IP协议,共分为四个
应用层(HTTTP)转变成想要的格式,(DNS)域名解析为ip地址
传输层(TCP)确保数据传输的准确性
网络层(IP)不断的中转,最终找到目标服务器
链路层(以太网)我们传输的数据在物理层面都是二进制的比特流形式,这个层应该做的就是支持这一形式的传输