从浏览器输入URL到网页显示经历了什么过程
- 域名解析-浏览器会向DNS服务器解析输入URL的域名去查找对应的IP地址
- 浏览器向web服务器发起TCP连接请求-发起TCP三次握手
- 建立TCP连接之后发起HTTP请求
- 服务器端响应HTTP请求,处理请求,处理之后返回给浏览器html文件
- 浏览器解析HTML代码,并请求HTML代码中的资源(遇到JS等静态资源时,向服务器请求下载 建立一次HTTP连接可以请求多个资源)
- 浏览器对页面进行渲染呈现给用户(浏览器根据html和css计算渲染书,绘制到屏幕上,js会被执行)
- 传输完成,断开连接(4次挥手)
DNS域名系统
DNS是一个分布式数据库,提供了主机名和IP地址之间相互转换的服务。域名有层次结构,从上到下是:根域名、顶级域名、二级域名。
- DNS可以用TCP或者UDP传输,大部分情况下使用UDP进行传输,需要域名解析器和域名服务器都要自己处理超时和重传来保证可靠。
- 用TCP传输的情况
- 返回响应超过512字节 UDP只最大支持512字节
- 区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)。
FTP(文件传输协议)
FTP使用TCP进行连接,它需要两个连接来传送一个文件
- 控制连接:服务器打开端口21等客户端的连接,客户端主动建立连接之后,用这个连接将客户端的命令传给服务器,并传回服务器的应答。
- 数据连接:传输一个文件数据。
主动被动模式
- 主动模式:服务端主动建立连接,服务端口20客户端口号随机,但是必须大于1024因为1~1023是熟知端口号
- 被动模式客户端主动建立数据连接,其中客户端的端口号由客户端自定义,服务端端口号随机。
动态主机配置协议(DHCP)
提供了即插即用的联网方式,用户不用手动配置IP地址等信息,DHCP还配置子网掩码,网关IP。
- 客户端发送 Discover 报文,该报文的目的地址为 255.255.255.255:67,源地址为 0.0.0.0:68,被放入 UDP 中,该报文被广播到同一个子网的所有主机上。如果客户端和 DHCP 服务器不在同一个子网,就需要使用中继代理。
- DHCP 服务器收到 Discover 报文之后,发送 Offer 报文给客户端,该报文包含了客户端所需要的信息。因为客户端可能收到多个 DHCP 服务器提供的信息,因此客户端需要进行选择。
- 如果客户端选择了某个 DHCP 服务器提供的信息,那么就发送 Request 报文给该 DHCP 服务器。
- DHCP 服务器发送 ACK 报文,表示客户端此时可以使用提供给它的信息。
远程登录协议(TELNET)
TELNET用于登录到远程主机上,并且远程主机的输出也会返回
电子邮件协议
- SMTP 发送邮件
- POP3 读取邮件,从服务器上读取之后,就把该邮件删除
- IMAP 协议客户端和服务器上的邮件保持同步,如果不手动删除,那么服务器上的邮件也不会被删除,IMAP让用户可以随时随地的访问服务器上的邮件。