共计 1631 个字符,预计需要花费 5 分钟才能阅读完成。
1. 查找 DNS 缓存
查找程序:浏览器缓存 => 操作系统缓存 => 路由器缓存 => ISP 缓存
查找办法:递归查问、迭代查问、非递归查问
2. 发动 DNS 查问
DNS 服务器:分布式、层次数据库
集中式服务器毛病:1. 保护难
2. 单点故障
3. 提早、阻塞
4. 通信容量
服务器构造:根 DNS 服务器 => 顶级域名服务器 => 权威 DNS 服务器(三方)
eg:maps.google.com 这个域名来说,如果 ISP 保护的服务器没有 DNS 缓存记录,它就会向 DNS 根服务器地址发动查问,根名称服务器会将其重定向到 .com 顶级域名服务器。.com 顶级域名服务器会将其重定向到 google.com 权威服务器。google.com 名称服务器将在其 DNS 记录中找到 maps.google.com 匹配的 IP 地址,并将其返回给您的 DNS 解析器,而后将其发送回你的浏览器。
3.ARP 申请
如果 DNS 服务器和咱们的主机在同一个子网内,零碎会依照上面的 ARP 过程对 DNS 服务器进行 ARP 查问
如果 DNS 服务器和咱们的主机在不同的子网,零碎会依照上面的 ARP 过程对默认网关进行查问
ARP 协定的全称是 Address Resolution Protocol(地址解析协定),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问指标 IP 对应的 MAC 地址 的一种协定。
简而言之,ARP 就是一种解决地址问题的协定,它以 IP 地址为线索,定位下一个应该接收数据分包的主机 MAC 地址。如果指标主机不在同一个链路上,那么会查找下一跳路由器的 MAC 地址。
4. 封装 TCP 数据包
浏览器失去指标服务器的 IP 地址后,依据 URL 中的端口能够晓得端口号(http 协定默认端口号是 80,https 默认端口号是 443),会筹备 TCP 数据包。数据包的封装会通过上面的层层解决,数据达到指标主机后,指标主机会解析数据包,残缺的申请和解析过程如下。
这里就不再具体介绍了,读者敌人们能够浏览 cxuan 的这篇文章 TCP/IP 基础知识详解具体理解。
5. 浏览器与指标服务器建设 TCP 连贯
在通过上述 DNS 和 ARP 查找流程后,浏览器就会收到一个指标服务器的 IP 和 MAC 地址,而后浏览器将会和指标服务器建设连贯来传输信息。这里能够应用很多种 Internet 协定,然而 HTTP 协定建设连贯所应用的运输层协定是 TCP 协定。所以这一步骤是浏览器与指标服务器建设 TCP 连贯的过程。
TCP 的连贯建设须要通过 TCP/IP 的三次握手,三次握手的过程其实就是浏览器和服务器替换 SYN 同步和 ACK 确认音讯的过程。
假如图中左端是客户端主机,右端是服务端主机,一开始,两端都处于 CLOSED(敞开)状态。
服务端过程筹备好接管来自内部的 TCP 连贯。而后服务端过程处于 LISTEN 状态,期待客户端连贯申请。
客户端向服务器收回连贯申请,申请中首部同步位 SYN = 1,同时抉择一个初始序号 sequence,简写 seq = x。SYN 报文段不容许携带数据,只耗费一个序号。此时,客户端进入 SYN-SEND 状态。
服务器收到客户端连贯后,,须要确认客户端的报文段。在确认报文段中,把 SYN 和 ACK 位都置为 1。确认号是 ack = x + 1,同时也为本人抉择一个初始序号 seq = y。请留神,这个报文段也不能携带数据,但同样要消耗掉一个序号。此时,TCP 服务器进入 SYN-RECEIVED(同步收到) 状态。
客户端在收到服务器收回的响应后,还须要给出确认连贯。确认连贯中的 ACK 置为 1,序号为 seq = x + 1,确认号为 ack = y + 1。TCP 规定,这个报文段能够携带数据也能够不携带数据,如果不携带数据,那么下一个数据报文段的序号仍是 seq = x + 1。这时,客户端进入 ESTABLISHED (已连贯) 状态
服务器收到客户的确认后,也进入 ESTABLISHED 状态。
这样三次握手建设连贯的阶段就实现了,单方能够间接通信了。
6. 浏览器发送 HTTP 申请到 web 服务器
7. 服务器解决申请并发回一个响应
8. 服务器发送回一个 HTTP 响应
9. 浏览器显示 HTML 的相干内容