对服务器端编程的理解

服务器端编程的本质用一句话来概括就是解决客户端进程和服务端进程之间的通信和数据交换问题。
下面我们就要思考两个问题:
第一个是两个进程如何通信?
通常通过操作系统提供的socket系统调用来进行TCP连接。(IPC方法很多,并不只有socket)
第二个是如何保证双方互相理解?
需要建立相应的规则,这也就是我们所谓的协议。

以Python web开发为例,一个http请求过程要经过:
浏览器—>web服务器—>WSGI服务器—->web 应用程序—->数据库客户端—->数据库服务器
浏览器本质是就是一个htttp客户端,而web服务器就是一个http服务端,通常web开发会通过网关协议来实现web服务器和应用程序的解耦,以Python web开发为例,Python的网关协议为WSGI,真实环境中我们还需要一个将http请求解析为符合WSGI需求的数据结构(一个环境变量字典)的WSGI服务器,则此时web服务器就相当于WSGI客户端,WSGI服务器就是WSGI服务端,而web应用被WSGI服务器调用,来处理http请求和生成响应的http应答,通常web应用需要操控数据库进行增删查改,而操控数据库的本质就是建立一个数据库的客户端,将sql语句转换为符合数据库通信协议的请求发送给数据库的服务端,服务端再生成响应的应答给应用程序,这就是通过编程语言对数据库进行增删查改的本质。

web框架和数据库客户端的本质:
web框架将解析和生成HTTP协议这个公共的,重复的过程自动化,使得web开发只需要用视图函数建立URL和函数之间的映射关系,然后返回写好的HTML文件。
数据库客户端也是相似的,将生成和解析数据库通信协议的过程自动化,使得操控数据库只用调用方法,并且写入相应数据库语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值