日常生活中我们用浏览器输入简书的网址www.jianshu.com就能进入简书的首页,那么这个过程究竟是怎么实现的,今天就简单谈谈。
输入URL.png
到
简书页面.png
开始之前的思路整理
URL是什么?
统一资源定位符,也就是我们俗称的网址,例如www.jianshu.com
页面展现是什么?
直观上来看就是网页在电脑上显示出来
我们都知道,展现出来的页面是由数据加载出来的,这个数据是存在于某一个服务器上面的,然后这个数据通过某些方式传输到我们的电脑上面,电脑通过一些方式展现出来。
那么我们按照事情的发展顺序来了解整个过程。
发生的步骤
1.找谁要数据(域名解析)?
要什么数据是我们通过URL告诉了浏览器,可是浏览器要找哪台服务器要数据才能找到呢?这就是我们说的域名解析,也就是DNS解析。每台电脑都有一个IP地址,所以假如你知道你需要的资源在哪个ip上,你直接输入IP地址就可以了,相当于我们每个人都有一个身份证号。但是在日常生活中你能每次都记得某个ip吗?显然是不可能的。
好了,浏览器接收到用户的网址之后,首先干嘛呢?
首先看看以前的记事本——浏览器缓存的DNS里面有没有
看看系统老大哥知道不——系统缓存,Hosts文件里面有没有
问问经常傻缺的路由器知道不——路由器缓存
问问地主家的IPS知道不——电信等网络运营商的缓存
假如都不知道,
去当地户口查询地看看——本地域名服务器向根域名服务器提交请求查找
去国家户口查询地看看——向com顶级域名服务器提交申请查找
。。。
以此类推,假如始终找不到——404,估计就是不在地球上,或者这个是个牛逼的ip,你逼格还不到家——无权访问
好,假设已经找到ip了,那么你就要打电话过去过去bb一下,让他把数据给你。这就是
2.数据怎么传(TCP连接)
打这个电话你就要沟通好,到底要什么数据,具体这个数据是顺丰快递,还是韵达快递,你的收货地址和电话是多少等等——HTTP请求
如果这个文件很重要,要暗号才能破解就得用加密协议——HTTPS
对方知道你要求之後就会按照你的要求把数据按照一定长度打包好,给你寄过来——服务器处理请求并返回HTTP报文
3.收到之後怎么用(网站处理流程)
这里有几种方式,我们就说下MVC模型方式的处理
M是模型,V代表视图,C代表控制器
数据由浏览器通过Rails这种编程语言传输给控制器,控制器给到模型,模型匹配数据库,然后反馈给控制器,接着视图就能把数据转换为html,再通过控制器给到浏览器处理成网页。
浏览器收到html字符串,就开始解析,这个过程是边解析边渲染的。比如当解析到Link标签时,就发送请求获取css
当解析到script标签时,请求js
当解析到img标签时,就请求获取图片资源
4.完成页面展示
这个文章没有深究其中各种操作的原理和具体步骤,就以非常容易理解的方式简单看看到底有哪些过程。如有问题,欢迎指正。
作者:张路1806
链接:https://www.jianshu.com/p/412e1cb8152a