- Objective:
- Breadcrumb:
# 概念阐释
server-side programming,也叫做后端编程、后端开发back-end development。[[动态网站]]的代码都是在服务器端运行的,编写服务器端的代码就叫做服务端编程,在服务器的运行架构中叫做web application应用服务器。后端编程主要关乎于**提供功能**。
- 服务端编程针对于服务器上运行的代码
- 对于浏览器的响应请求,选择返回给浏览器的内容
- 充分访问服务器的操作系统
- 客户端编程的代码主要有PHP、python、Ruby、C#、JavaScript(唯一一种适用于前后端编程的语言)
## 服务端 Web 框架
选择一种服务端web框架前要考虑几个重要因素:
- 学习代价:没有编程基础或是开发团队的一部分
- 效率:效率取决于框架的难度,例如Django具备所有问题的工具/库,Flask是轻量级框架,需要用户自己搭建解决方案,可能还需要学习子集
- 框架/编程语言的表现:速度并不是重要的考虑因素,不因应速度来决定学习那种语言
- 缓存支持:网站足够大后需要考虑缓存问题
- 可扩展性:网站足够大后需要考虑网络分发问题
- 安全性:很注重隐私和安全的网站需要在选择框架时考虑安全性问题
基于以上因素,Django(Python)和 Express(Node/Javascript)是最佳选择
- Django(Python):框架和编程语言都是简单易学的,提供全面的解决方案
- Express(Node/Javascript):编程语言与前端一样,但 Express 是一个小型的 web 框架,它几乎不包含任何你可能想要使用的组件,这点上也许有些困难
- ASP.NET(C#)
# 实例
亚马逊、阿里巴巴国际站是典型的后端编程网站,支持会话、支持用户和身份验证、简单的数据访问、搜索、下单购买等。
#### 用户生成内容
- Facebook
- wikipedia
- MDN
#### 定制用户体验
- 存储交易信息,不需重复输入
- 突出附近商业信息
- 根据用户的兴趣、习惯规划你喜欢的清单
#### 控制访问内容
- Facebook,用户可以控制谁可以访问我的主页
- 此功能可以区分普通用户与plus用户
#### 存储会话或状态信息
- 比如存储了游戏进度,下次从这里开始
#### 通知或通信
- 通过邮件或SMS(短信)来向指定用户发送订阅消息
#### 数据分析
# 相关内容
[[Database 数据库系统]]
# 参考资料
- [服务端 web 框架-MDN](https://developer.mozilla.org/zh-CN/docs/Learn/Server-side/First_steps/Web_frameworks#%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E4%B8%80%E4%B8%AA_web_%E6%A1%86%E6%9E%B6)