输入URL如何展现页面
2018-11-05 本文已影响0人
innerwang
URL是什么
uniform resource locator ,统一资源定位符,用于定位互联网上的资源
url对应协议,端口号,域名以及其他相关信息
常见协议: http,https,ftp,file
http是明文传输;https是安全的http协议
//code.jquery.com/ 代表当前文件的url所使用的协议和当前页面所使用协议保持一致
>>>:域名解析
浏览器不知道url其中域名所对应的IP地址,所以需要通过域名解析
IP地址
局域网IP和公网IP是有区别的,本机IP是127.0.0.1
域名解析的流程
- 查找浏览器缓存 ----> 浏览器会缓存DNS记录一段时间
- 查找系统缓存 ----> 查看电脑的hosts文件是否有对应的域名的IP
- 查找路由器缓存 ----> 一般路由器也会缓存域名信息
- ISP DNS缓存 ----> 比如到电信的DNS上查找缓存
- 如都没有查到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级,直到找到IP
---扩展小知识---
- 8.8.8.8是谷歌提供的DNS,114.114.114.114是国内移动、电信、联通通用的DNS,上不了网时可以修改为上述DNS
- DNS劫持:攻击服务器节点,在域名解析时给一个假的IP或者不做响应
>>>:服务器处理
服务器是安装了Linux、Windows Server 2012等系统的机器,系统里安装了可处理请求的应用Web server
- 常见web服务器有Apache、Nginx、IIS、Lighttpd
- web服务器接收用户的Request交给网站代码,或者接收请求反向代理到其他web服务器
web服务器是一个统一管控/承载的工具,需要写一个配置文件,看哪个访问对应哪一套代码去处理
>>>:网站处理流程
后台语言:Ruby,node.js,python等
MVC ----- 模型(model)-视图(view)-控制器(controller)
- 浏览器发送请求过来由Rails路由去匹配,再交给控制器,控制器的index动作要求模型读取所有用户,模型操作数据库,给控制器提供接口,就可以查到信息,视图就是html的模板,把数据插入模板,控制器把HTML送回浏览器
浏览器处理
- 解析到link标签/href标签 请求获取CSS
- 解析到script标签 发送请求获取js,并执行代码
- 解析到img标签请求获取图片资源
- 浏览器根据HTML以及CSS计算得到渲染树,绘制到屏幕上,js会被执行
输入一个www.baidu.com后续的执行过程
- url输入到浏览器,浏览器首先会解析域名www.baidu.com得到对应的IP,将请求发送到对应IP的服务器,服务器上装的web server(例如Nginx)应用会处理收到的http请求,交给对应的网站代码处理,网站代码即为后端处理,会将请求所需的查询的内容塞入视图的模板,返回一个html,此时浏览器接收到html字符串会针对相应的标签进行解析,再请求相应的资源(如链接,js代码等),浏览器根据解析得到的结果画出页面并执行js代码。