- 去哪查域名对应的IP
DNS服务器(它是服务器,也有ip地址,它的地址是作为TCP/IP设置项设置好的)
- 谁去查
DNS客户端(操作系统Socket库)
- 谁发的查的消息
操作系统内部协议栈(UDP消息)
- 查完了存哪里
存在内存里,浏览器去拿这个ip
- 查ip的消息里有些什么信息
域名、class(没什么用,都是IN表示互联网)、记录类型(A表示域名对应的是IP地址,MX表示域名对应的是邮件服务器)
ip地址知道了,接下来委托协议栈发送消息
http的工作过程
- 谁来做
调用Socket库中的程序组件
- 什么过程
- 创建套接字 (上帝说要有一根管子,套接字只是一个概念,不是真的有套接字)
创建套接字返回描述符(描述符存在内存里用来识别不同的套接字)
因为有很多不同的数据通信的应用,不一定都是浏览器 - 连接(接管子) 客户端的套接字和服务器的套接字连接起来
(需要3个参数:上一步的描述符、ip地址、端口号)
注意:这里的描述符是给自己用的,表示自己使用哪一个套接字(哪根管子)连接服务器的哪个端口(哪根管子) - 传数据(送水) 客户端通过Socket库调用write程序组件,送数据
服务器收到,响应
客户端通过Socket库调用read程序组件,接响应到内存的缓存区 - 关管道
客户端收到响应后,通过Socket库调用close组件,关闭并删除套接字