1 解析URL
浏览器做的第一步就是解析 URL 得到里面的参数。拆分访问协议(http/https),获得服务器域名(www.baidu.com),或得请求资源路径名(/userinfo/index.php)或得请求参数(username=nick)。将域名和需要请求的资源分离开来,从而了解需要请求的是哪个服务器,请求的是服务器上什么资源等等。
2 浏览器封装HTTP请求报文
解析完url后,浏览器此时就确定了请求的协议、服务器域名、请求路径、参数。接下来浏览器会根据这些内容封装成一个HTTP请求报文发出去。
请求行 GET /userinfo/index.php HTTPS/2.0请求头 HOST:www.baidu.com Contention:keey-alive Content-Type:application/x-www-form-urlencoded Content-Length:16 请求体 username=nick
3. DNS 域名解析获取 IP 地址
封装好 HTTP 请求报文后,在发送之前需要获取目标服务器的 IP。
浏览器会根据请求域名搜索【浏览器 DNS 缓存】,浏览器 DNS 缓存维护着一张域名与 IP 地址的对应表。
如果浏览器 DNS 缓存不存在对应域名的 IP,浏览器会搜索【操作系统的 DNS 缓存