第一步:在浏览器中输入URL
什么是URL?
URL:统一资源定位符,用于定位互联网上的资源(图片文件等)。
http协议:http://用于找到网络上的资源。
https协议:https://经过加密后的协议。
ftp协议:仅基于TCP的服务,不支持UDP。
file协议:file://用于定义本地电脑上的文件。
//当前的文件的协议和当前页面的协议一致。
第二步:域名解析
对于http://jirengu.com的URL,浏览器实际上不知道jirengu.com到底是什么,需要查找jirengu.com这个域名所在的服务器的IP地址,才能找到目标。
为什么要发明域名,不直接用IP?
IP对应于很多数字,不容易记忆,而且可能存在一个网站有很多IP地址。域名有一个语义化的作用,容易记忆。
域名是什么?
对于http://jirengu.com:8080/blog,jirengu.com就是域名。:8080是端口号。
IP地址是什么?
- 每个处于互联网中的设备都有IP地址,便于别人找到和连接网络。形如:192.168.0.1
- 局域网IP和公网IP是有差别的。连接到同一wifi的电脑连接的就是局域网,通过局域网的IP可以找到。手机调试的方法:手机和电脑连接到同一个WiFi下,手机浏览器通过电脑的IP地址访问需要调试的地址。公网IP是需要申请的。
- 127.0.0.1代表本机的IP。当前电脑上的IP。(电脑可以存在其他的IP)。
域名解析的流程
- 浏览器缓存 - 浏览器会缓存DNS记录一段时间。(网站被访问过)
- 系统缓存 - 从Hosts文件查找是否有该域名和对应的IP。(网站没有访问过)Hosts文件在Windows中的位置:/C/windows/system32/drivers/etc.
Hosts文件的主要作用:是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。可以用文本文件打开。当用户在浏览器中输入一个没访问过的并且需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,浏览器会立即打开对应网页,如果没有找到,浏览器会将网址提交到DNS服务器进行IP地址解析。 - 路由器缓存 - 一般路由器也会缓存域名信息。
- ISP DNS缓存 - 比如到电信的DNS上查找缓存。
- 如果都没有找到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级,直到找到IP。
电脑上不了网,为什么修改DNS为8.8.8.8.或者114.114.114.114?
8.8.8.8是谷歌提供的DNS服务器,打不开是因为对应的IP找不到,把电脑的DNS服务器改为谷歌DNS服务器,那么浏览器就不会从以上那些地方查找网站的IP了,而是直接从谷歌的服务器里面查找IP。不经过中间环节,直接从需要的地方进行查找。
114.114.114.114是国内的一个比较大比较权威的DNS服务商提供的服务器。
DNS劫持是什么?
IP地址被篡改。DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求方行,否则返回家的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能进行访问或访问的是假网址。
第三步:服务器处理
服务器是一台安装系统的机器,常见的系统如linux(无界面)、windows server 2012(有图形界面) 系统里安装的处理请求的应用叫Web server(接受请求)。
Web server(web服务器)
- 常见的web服务器有Apache、Nginx、IIS、Lighttpd。(可以自己搭建)
- web服务器接收到用户的Request交给网站代码,或者接受请求反向代理到其他的web服务器。
第四步:网站处理流程
MVC:模型(model)- 视图(view) - 控制器(controller)
Model:是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。
View:是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。
Controller:是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
浏览器处理:
HTML字符串被浏览器接受后被一句句读取解析。
解析到link,href标签后重新发送请求获取css
解析到script标签后发送请求获取js,并执行代码
解析到img标签后发送请求获取图片资源。
绘制网页
浏览器根据HTML和CSS计算的到渲染树,绘制到屏幕上,Js会被执行。