从输入URL到渲染页面发生了什么?
简单来说:
- 域名解析
- 发起TCP三次握手建立连接
- 建立连接后发起http请求
- 服务器响应请求,浏览器获取html源码
- 浏览器解析html代码,并请求相关css,js和图片资源
- 浏览器渲染页面
然后先上一张比较直观的图
那么既然层次中,TCP在HTTP下一层,为什么是先建立TCP连接呢?
因为 http是不是一种面向连接的协议,在应用层中,仅仅是生成了http请求的信息和数据,但无法直接发送,所以才需要先建立tcp连接。tcp在将http请求信息发送之前,会将其分割,并在各个报文上打上标记,然后继续发送给网络层。