
这是一个简化了的web项目流程图,有经验的同学可能会发现上面少了如反向代理服务器、防火墙,缓存服务器等等,不过本期只为了更加清晰的了解web应用的项目结构,并不做过多的深入展开
我们在浏览器中输入了url以后会发生什么?
我们在浏览器中输入了url以后,计算机就会将url拿去进行dns解析,得到url对应的ip地址,得到目标ip地址后,我们向ip对应的web前端服务器发起请求询问是否可以建立TCP连接,连接建立之后向web前端服务器发起http请求,web前端服务器通过http请求的形式决定如何向web后端服务器请求数据,与web后端服务器建立连接,后端服务器向数据库查询数据并处理,返回数据给前端服务器,前端拿到数据渲染网页传回浏览器,直到你关闭网页tcp连接关闭(当然前端向后端发起请求也需要建立tcp连接)。
什么是协议?
协议简单来说就是为了完成一项工作两个或者多个通讯实体共同遵守的规定,用人类社会来类别,为了和一个陌生人进行交流,你跟他说了一句中文的你好,如果你们不遵守相同的协议(即不会中文)你们就无法完成交流这个工作,换成通讯实体也一样,如果一台计算机不遵守http协议,他就无法接收服务器传回的网页。(当然不需要担心,在你使用操作系统时无时无刻都在遵守着这些基础的协议)
什么是TCP/IP协议?
TCP/IP协议是整个因特网的基础和核心,几乎所有的互联网通信都需要依赖与TCP/IP协议,IP定义了网络上的主机的身份标识,通过IP地址可以区分不同的主机,TCP向他的应用提供了安全可靠的连接服务。
希望详细了解的同学可以去下面的连接查看:https://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
什么是http协议?
http协议也叫超文本传输协议,它是基于tcp的应用层协议,是web应用的核心,http由两个程序实现,一个客户程序和一个服务器程序,一个负责请求一个负责响应
希望详细了解的同学可以去下面的连接查看:https://www.ruanyifeng.com/blog/2016/08/http.html
什么是url?
url是统一资源定位符/统一资源标识符,网络资源的唯一标识,每个url地址由两个部分组成,存放对象的服务器主机名和对象的路径名,我们拿https://www.svjpblog.cn/index.php/category/frontend/来举例,其中的www.svjpblog.cn就是主机名,/index.php/category/frontend/就是路径名
DNS服务器的作用是什么?
DNS名为域名解析服务,可以将域名转换成对应的IP地址,DNS服务器是一个储存有大量域名与ip地址的映射,用社会中的例子来说,就相当于你的名字与身份证号,通过你的名字(域名)就能查询身份证号(ip),当然这里为了方便不考虑重名的问题,虽然DNS的原理很简单,但是如何保证解析服务的速度能达到现在互联网的数据传输速度就不是那么简单的了,想详细了解的可以观看bilibili的这个视频:https://www.bilibili.com/video/BV1uL4y1B7aE/?spm_id_from=333.337.search-card.all.click&vd_source=41937745a957faed1c8a91c5d95c5d8b