在浏览器上输入一个网址点击确定,这一瞬间发生了什么?
简单的草图:
1.域名解析
浏览器首先从URL中解析出域名,然后根据域名查询DNS,获取到域名对应的IP地址。
2.发起TCP的3次握手
浏览器用这个IP地址与服务器建立TCP连接,如果用的是HTTPS,还有完成TLS / SSL的握手。
3.建立TCP连接后发起http请求
在建立好连接以后呢,构造HTTP请求,在构造请求的过程中,要填充少量至HTTP头部
4.服务器响应http请求,浏览器得到html代码
然后通过这个TCP连接发起HTTP请求,当服务器收到这个HTTP请求以后,返回给浏览器以HTTP页面作为包体的HTTP响应。
5.浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
浏览器渲染引擎解析响应,根据此响应中其他的超链接(js / css / img)等资源再次发起HTTP请求。
6.浏览器对页面进行渲染呈现给用户