问题一:经典面试题【从输入URL到页面加载发生了什么?】
1.DNS解析 :如果地址包含域名通过DNS解析获取服务器对应的ip地址,如果输入的URL不包含域名则不经过这一步。
2.TCP连接 : 经过DNS解析后获取到了服务器的IP地址,在获取到IP地址后,便会开始建立一次连接(三次握手)。
3.发送HTTP请求 : 在确认与服务器建立连接后,便会发送一个HTTP请求。
4.服务器处理请求并返回HTTP报文 : 服务器在收到浏览器发送的HTTP请求之后,会将收到的HTTP报文封装成HTTP的Request对象,并通过不同的Web服务器进行处理,处理完的结果以HTTP的Response对象返回,主要包括状态码,响应头,响应报文三个部分。
5.浏览器解析渲染页面
6.连接结束 : 在页面元素传输完成后,会选择关闭连接(TCP四次挥手)。
问题二:建立起一个TCP连接需要经过几次握手, 关闭TCP连接需要经过几次挥手
1.建立起一个TCP连接需要经过三次握手, 关闭TCP连接需要经过四次挥手
2.三次握手:
1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。
2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。
3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。
通俗的说法
1)Client:嘿,李四,是我,听到了吗?
2)Server:我听到了,你能听到我的吗