URL:url是统一资源定位符,用于定位互联网上的资源
常见的有http、https、file、ftp协议
- http://www.baidu.com 用的http协议
- file:///C:/Users/think/Desktop/test/index.html 本地文件目录地址,只能在本机打开
- https://www.npmjs.com/ 加密的http协议
- //www.taobao.com 遵从html当前的协议,如果html使用的http协议,就用http的方式打开,如果是https就用这个协议打开,但是使用file协议的时候,可能会出现打不开的情况。
域名解析
- 当我们再地址栏里输入
www.baidu.com
这个url的时候,浏览器实际上并不知道www.baidu.com
是什么,需要查找www.baidu.com
网站所在服务器的ip地址才能找到目标。在我们日常使用的时候,并不直接使用IP地址,因为所有的网站都有自己的IP,但是都是一串数字,不方便记忆,这个时候就发明的域名。
域名解析流程
- 1、浏览器缓存——浏览器会缓存DNSDNS记录一段时间
- 2、系统缓存——从Hosts文件查找是否有该域名和对应的IP
- 3、路由器缓存——一般路由器也会缓存域名信息
- 4、ISP DNS 缓存——比如从电信的DNS上查找缓存
- 5、如果都没有找到,则会向根域名服务器查找域名对应IP,根域名服务器会把请求转发到下一级,如果找到IP
服务器处理
- 服务器是一台安装系统的机器,常见的系统如Linux、Windows server2012,系统里安装的处理器请求的应用叫Web server
web服务器:常见的的有Apache、Nginx、IIS、Lighttpd
web服务器接受用户的Request交给网站代码,或者接受请求反向代理到其他的web服务器
image.png
由上图我们可以看出,域名1和域名2和IP地址都对应同一个网站,但是通过Nginx来处理这些请求,由于这些域名都默认设置80端口,80端口可以不用输入80,所以域名1和域名2打开其实都是同一个IP地址,但是经过nginx的处理,把域名1解析到3000端口所监听的对应网站,域名2解析到4000端口所监听的对应网站,那么就会显示不同的页面,最终访问不同的域名看到的就是不同的网站。
网站处理流程
MVC 模型(model)-视图(view)-控制器(controller)
image.png
浏览器处理
- HTML字符串被浏览器接受后被一句句读取解析
解析到link 标签后重新发送请求获取css
解析到 script标签后发送请求获取 js,并执行代码
解析到img 标签后发送请求获取图片资源
绘制网页
- 浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上
js 会被执行
网友评论