浏览器再获得URL后,调用Socket,使用TCP协议,HTTP请求会被封装,加入本地端口,目标端口等信息 IP地址是在IP协议中被封装的。但光有IP地址是不够的,由于设备是能够移动的,IP地址并不与设备绑定。因此还有一个MAC要被封装,每一个网卡的MAC地址都是固定且惟一的css
DNS其实是一个域名与IP对应的数据库,DNS解析主要是为了获取到域名对应的IP,用于下一步的链接创建html
DNS的解析会按照如下顺序尝试获取IP,任意一步找到直接返回IP:chrome
1. 查询浏览器缓存,浏览器会对最近访问的地址的DNS进行缓存,例如chrome对每一个域名会默认缓存60s
2. 检查系统缓存,也就是hosts文件中配置的域名与IP的对应关系
3. 获取路由器的DNS缓存
4. 查询ISP服务商DNS缓存,即本地服务器缓存
5. 最后手段:递归查询,以 根域名服务器 --> 顶级域名服务器 --> 极限域名服务器 的顺序搜索对应域名的IP
复制代码
经过Socket API发送数据,能够选择TCP或UDP协议数据库
1. Socket(套接字)是计算机之间进行通讯的一种约定或一种方式
2. 在应用层和传输层之间的一个抽象层
3. 它把TCP/IP层复杂的操做抽象为几个简单的接口
4. 供应用层调用已实现进程在网络中通讯
复制代码
根据上一步获取到的IP地址定位到目标主机,开始于其创建TCP链接,也就是三次握手创建链接:浏览器
用上一步创建的链接发送http request请求命令和请求头信息缓存
服务器收到信息都会返回应答头信息bash
若是response的状态码出现3XX(跳转),未受权(401),错误(4XX和5XX)会有不一样的处理。服务器
若是response status 为304(内容未更改)浏览器则会从原本缓存加载内容进行呈现网络
经过MIME类型,浏览器知道要用页面渲染引擎来处理HTML文件,整个渲染过程都由浏览器来处理,主要分为如下步骤:tcp
HTTP、DNS
TCP/UDP
IP