URI解析
一般过程
当你在浏览器中输入信息时,浏览器就已经开始进行工作了。首先它会监听我们输入的信息并尝试匹配出你想要访问的网址或关键词,以 chrome 为例,它会猜我们想要什么,给出下面的建议项:
- 使用默认搜索引擎搜索关键字
- 书签,历史记录和最近下载中存储的其他链接
- 使用默认搜索引擎的相关关键字搜索选项
当我们在地址栏输入xxxx.com后回车,命令浏览器搜索信息。浏览器就会对输入的信息进行以下判断:
- 输入的是不是一个合法的URI
-
如果不是,就将输入的内容作为搜索的条件,生成一个HTTP数据包
-
如果是,判断输入是否完整。浏览器可能会对域猜测,也就是说尝试通过在输入的内容中添加前缀、后缀或两者来 “补全” URL。比如输入 xxx.com 则可能会在前面添加 www。等有了一个URI之后,就解析URI。
- 待URI解析完毕之后,就可以的到服务器域名等,然后就可以根据这些消息生成一个HTTP数据包了
- 浏览器先从URI中取出协议,比如http协议,然后根据不同的协议进行不同的解析。
- 然后从URI中提取出主机名(host)信息。它可能是一个 IP 地址(比如192.168.0.1),也可以可能是一个域名地址(www.xxx.com)。如果是域名地址就需要访问DNS服务器获取到对应的IP地址,如果是IP地址就不需要进行这一步了
- 待URI解析完毕之后,就可以的到服务器域名等,然后就可以根据这些消息生成一个HTTP数据包了
-
现在已经生成了一个HTTP数据包了。
补充信息
浏览器还会进行一些额外的操作,比如安全检查、访问限制等。
实际上,浏览器会先查看缓存来决定下一步是什么操作: