深入讨论输入URL到请求结果的过程
问:浏览器地址栏输入URL后到请求完成浏览器发生了什么?
答:浏览器先进行DNS解析,根据dns系统查找IP地址,解析出IP地址,发起请求建立TCP链接,请求HTML文件资源
深入:
- 那么为什么URL需要解析(编码)?
- 因为网络标准中规定了URL只能是字母和数字以及一些特殊字符(~.?&*;/()%$#@![])组成,如果不做解析转义在一些特殊情况下可能会出现歧义,比如我向一个网站请求,后面携带参数:http:www.baidu.com?test=values,但是假如我的请求test本身包括特殊符号“=”,现在后面携带的参数是这样的tes=t=values,这时就会出现问题,你不知道我的“=”到底是链接test和values的还是我的test本身就包含了“=”,所以在这之前需要进一步解析转义
- 那么URL编码的规则是什么?如何保证这个编码规则?
- utf-8。可以使用encodeURLComponent给参数编码;那么encodeURLComponent和encodeURL的区别是什么呢? encodeURLComponent的编码范围更加广阔,更适合给参数编码,而encodeURL更适合给URL地址本身编码
- 关于dns解析流程,以及dns优化
- 比如输入www.baidu.com域名后,我们的操