目录
DNS
引入
DNS(Domain Name System,域名系统),域名解析服务
- 我们真正访问网站用的是ip地址和默认端口号,而不是域名
浏览器内置了DNS服务器的ip地址
- 当我们访问某网站时,会先进行域名解析,再拿着ip地址去访问
hosts文件
用于将主机名(例如网站地址)映射到 IP 地址
这个文件存在于操作系统中,每当计算机需要将一个主机名转换为 IP 地址时,系统会首先查看hosts文件,然后再查询 DNS 服务器
这样做可以帮助快速解析地址,或者在某些情况下屏蔽特定网站
域名
主域名
主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称
结构
www.公司/组织/个人名称.后缀
www
习惯用法,可以省略
公司/组织/个人名称
二级域名
后缀
一级域名,表示公司性质
- 常见的"com",表示这是一个企业域名
- 同级的还有 "net"(网络提供商), "org"(非盈利组织) ,"edu"(教育相关组织)
除此之外,还有其他类型的后缀:
面试题
当我们输入一串url后,会发生些什么?
简单回答
http过程+域名解析
- 浏览器解析url(协议+域名+访问数据的路径)
- dns查询(本地缓存/dns服务器),将域名->ip地址
- 已知目标服务器的ip地址+默认端口号后,经过三次握手建立连接
- 构建http请求(填充请求行,报头,正文部分) -> 跨网络传输,到达目标主机 -> 构建应答(状态行,响应报头,正文) -> 返回给源主机
- 源主机接收到后,解析报文,提取正文 -> 经过浏览器渲染,让我们看到网页
部分https
现在大多数浏览器都默认使用https协议,所以,在tcp连接建立好后+构建请求前,需要先商议秘钥
细节
将网络协议栈往下延伸:
- 传输层(tcp协议 -- 发送缓冲区,字节流,拥塞控制,流量控制,超时重传,确认应答)
- 网络层(ip协议 -- 路由表,分片和组装)
- 链路层(Mac帧)