一、浏览器如何解析网址
在浏览器的地址栏输入网址后,浏览器要做的第一步工作就是对这个URL(Uniform Resource Locator,统一资源定位符)进行解析。 浏览器会按照以下格式对URL进行解析,将其中的元素拆分出来。
http://Web服务器名/目录名/文件名
- http:访问数据源的机制,即超文本传输协议
- Web服务器名:Web服务器的域名,比如www.baidu.com
对URL解析完成后,浏览器就确定了Web服务器和文件名,然后根据这些信息生成HTTP请求消息。
二、请求消息实际的样子
- 请求消息的第一行为请求行
<方法><空格><URI><空格><HTTP版本>
- 方法:常见的HTTP方法有 GET(获取URI指定的信息)、POST(从客户端向服务器发送数据)
- URI:Uniform Resource Identifier,统一资源标识符
- 请求消息的第二部分为消息头
<字段名>:<字段值>
...
...
- 请求消息的第三部分为消息体
三、浏览器如何向DNS服务器查询IP地址
浏览器需要调用操作系统Socket库中DNS解析器组件。解析器内部会生成发送给DNS服务器的查询消息,然后会由操作系统内部的协议栈发送消息,经过网卡再发送到最近的DNS服务器(DNS服务器的IP地址是内置在计算机中的)。 DNS服务器会将Web服务器IP地址放到响应消息中,再原路返回给解析器。解析器将IP地址再返回给浏览器。
四、DNS服务器进行接力的方法
浏览器会先在本地缓存中查找Web服务器的IP地址,如果没找到,会在最近的DNS服务器存储的记录里查找。 每一台DNS服务器都存有根域服务器的信息。如果在最近的DNS服务器里没有找到,就会在根域服务器里查找,根域服务器会返回子域服务器的IP地址给该DNS服务器。最近的DNS服务器会再根据这个IP地址,访问子域服务器。如此重复,直到返回Web服务器的IP地址
五、浏览器如何将消息委托给操作系统
向操作系统内部的协议栈发出委托时,需要按照一定的顺序调用Socket库中的程序组件。
|