什么是URL
- URL:统一资源定位符,用于定位互联网上的资源(URL通常包含:协议、端口号、域名、其他信息)
- 常用协议:http(用来寻找网络上的某个资源)、https(加密,相当于一个更安全的http)、file(定位本地电脑上的文件)、ftp等
总的分为下面几个过程
- 在 浏览器钟输入URL
- 域名解析
- 服务器处理
- 网站处理流程
- 浏览器处理
- 绘制网页
具体过程
域名解析
- 域名解析是通过域名来找到域名对应的IP地址的过程(不直接使用IP地址而使用域名是因为IP地址太多,不利于记忆,某些网站有多个IP,域名更加语义化、清晰,容易记忆; IP地址:每个处于互联网的设备都有一个IP地址)
域名到IP地址的流程
- 浏览器缓存(浏览器会缓存DNS记录一段时间)
- 系统缓存(从host文件查找是否有该域名和对应IP)
- 路由器缓存(一般路由器也会缓存域名信息)
- ISP DNS缓存(比如到电信的的DNS上查找缓存)
- 如果以上步骤没有找到,则会像根域名服务器查找域名对应IP,根域名服务器会把请求转发到下一级,直到找到IP
服务器处理
服务器是什么
服务器是一台安装系统的机器(常见的系统有Linux、windows server 2012)
- 请求到达服务器
- 应用接受请求(系统里安装的处理请求的应用叫Web server)
- Web服务器接收请求交给网站代码或反向代理到其他的Web服务器
网站处理
- web服务器接收用户的请求后 交给网站代码,然后返回后台程序处理产生的结果作为响应。网站处理实际上就是这里的后台程序处理。后台程序处理时大部分都会用到MVC框架
- MVC是一个设计模式,将应用程序分成三个核心部件:模型(model)-- 视图(view)--控制器(controller),它们各自处理自己的任务,实现输入、处理和输出的分离。
浏览器处理
- 网站处理之后,Html字符串被浏览器接收后一句句读取解析
- 解析到link标签之后重新发送请求获取CSS
- 解析到script标签后发送请求获取js,并执行代码
- 解析到img标签后发送请求获取图片资源
绘制网页
- 浏览器根据html和css计算得到渲染树,绘制到屏幕上
- js会被执行