关于前端代码部署 静态服务器 动态服务器问题

我是一个前端初学者 想学习前端代码部署和服务器相关的知识
目前了解的知识非常有限 也没有接触过具体项目 我说一下我的理解 如果哪里有错误希望大家指出
1.静态文件服务器部署在cdn节点 具体url通过工具或者模板写入html文件中
2.处理业务逻辑和记录用户状态等操作 作为动态服务器的主要功能 这样的功能算作动态服务器?
3.有个问题,比如用户请求完主页‘/’之后,又发送了一个登陆的请求,这时服务器处理了用户登陆的请求,返回了和用户状态有关的文件,比如一个在数据库中用户之前存储过的文件,,这种文件的发放只能放到动态服务器吗?
4.静态服务器和处理逻辑动态服务器是分开部署的吗?
5.我这样理解整个模型 有哪里是错误的呢?
图片描述

阅读 5.7k
2 个回答

1.静态文件服务器部署在cdn节点 具体url通过工具或者模板写入html文件中
2.处理业务逻辑和记录用户状态等操作 作为动态服务器的主要功能 这样的功能算作动态服务器?

可以简单的理解,静态动态是相对于内容而言,如果每次请求同一个地址,不管参数如何(即参数不起作用),得到的内容都是相同的,那么这个资源就是静态的,可以放在 CDN 上。如果请求的同一个地址,有可能返回不同的内容(可能直接访问地址内容就不同,比如更新了新近的内容;或者加了参数之后返回的内容是经过过滤的),那就说明这个是动态资源。动态内容通常会由程序来生成,就是以前常说的服务器端页面,现在常说的Web应用,相应的服务器被称为应用服务器。

有一种技术叫内容静态化,这个技术这里不讨论,有兴趣可以去查查。

3.有个问题,比如用户请求完主页‘/’之后,又发送了一个登陆的请求,这时服务器处理了用户登陆的请求,返回了和用户状态有关的文件,比如一个在数据库中用户之前存储过的文件,,这种文件的发放只能放到动态服务器吗?

如果文件内容是不变的,这个文件就可以放在CDN上,用户可以从应用服务器获取文件地址,再通过静态链接下载。但是如果这个文件内容虽然不变,却受用户权限限制,那么就不能直接放在CDN上,CDN 是对公的,没法控制权限。

4.静态服务器和处理逻辑动态服务器是分开部署的吗?

应用服务器通常带有静态服务器的功能,这里说的服务器是指服务系统。如果两个服务分离(比如一个 Nginx,一个 IIS),可以部署在同一个服务器上也可以部署在多台服务器上,有很多技术用于处理网址转发,比如反向代理等。

5.我这样理解整个模型 有哪里是错误的呢?

以上是我对你这些问题的粗浅理解。我本向涉及的运维方面的知识不多,所以仅供参考。

cdn可以分发静态资源,比如说js,css,图片,视频等。而需要数据库交互的,需要去服务器动态拿。现在的玩法,前端用react等做spa,后端restful api,彻底分离。涉及到调用api的,就到服务器中交互,因为是api模式,渲染都不是像以前那样服务器端渲染页面代码给前端,所以数据就少很多。静态资源存储在阿里oss,七牛之类的存储中,配合cdn。从后端传过来的静态资源路径就指向到cdn了,用户存的文件,如果出于安全,不能让别人通过路径下载,可能就要从服务器动态获取了。对于隐私文件,也有很多解决方法,也可以配合cdn,这是要根据自己情况研究的东西。

推荐问题
宣传栏