一、浏览器(客户端)进行地址解析
当我们在浏览器中输入一个地址,按下回车后,浏览器获取到的是一个字符串。浏览器此时要对这个地址进行解析,获取协议,主机,端口,路径等信息
例如:
http://www.imooc.com/article/draft/id/430 这个网址缺少了一些东西,端口号,用户名,密码,query和flag都没有。这些东西都是非必须的,甚至协议、路径都可以不要,最简洁的方式为imooc.com,浏览器会对一些默认的东西进行补齐。例如:互联网url默认端口号为80,浏览器默认补齐功能会补齐协议http,有些还会直接在域名前面补上www。所以实际上,即使我们输入的是imooc.com,然而实际访问的却是http://www.imooc.com
二、将解析出的域名进行dns解析
1.先查看浏览器dns缓存中是否有域名对应的ip。
2.如果没有,则产看操作系统dns缓存中是否有对应的ip(例如windows的hosts文件)。
3.依旧没有就对本地区的dns服务器发起请求,
4.如果还是没有,就直接到Root Server域名服务器请求解析。
三、通过ip寻址和arp,找到目标(服务器)地址
arp就是地址转化协议,也就是把ip地址转化为mac地址。和dns很像,先查缓存,然后查路由器
四、进行tcp三次握手,建立tcp连接
简述一下,第三步我们找到了目标ip,并获得了服务器ip的mac地址。此时浏览器就会请求和服务器连接,用来传输数据。tcp 是稳定双向面向连接的,断开时也会分两边分别断开。面向连接不是说tcp一个双方一直开着的通道,而是维持一个连接的状态,让它看起来有连接。