1、解析协议:浏览器提取URL中的协议部分,以确定使用的通信协议,比如http、https、ftp。
2、解析主机名:浏览器会将主机名解析为IP地址,才能知道要和哪个服务器建立网络连接。这个过程就是DNS解析
3、解析端口号:比如一些web服务器默认http服务的端口号是80
4、解析路径:主机名和端口号之后的就是路径部分,这部分是用来确定请求的资源路径
5、解析查询参数:URL中还可能有带一些参数
1、本地DNS缓存:浏览器先检查本地的DNS缓存,看是否命中这个IP地址
2、操作系统的DNS缓存:浏览器本地DNS缓存没有命中的话,就会查询操作系统中DNS缓存。
3、DNS服务器查询:以www.baidu.com为例
浏览器获取到目标服务器的IP地址后,就尝试与其建立TCP连接。TCP连接是一个可靠的协议,它是靠三次握手建立连接的:
为什么要有三次握手?
因为TCP建立的是可靠的连接,就是必须双方都确认可以通信,如果只有2次握手:
TCP连接建立完成之后,浏览器就会发送http请求到服务端。