如何把请求求转发给处理业务的脚本?

来源:5-6 编写自定义HTTP应用之POST方法

慕仔8219013

2019-10-20 22:52

哥,咱写的服务器,你怎么能直接在这里面处理业务代码呢?我想看的是服务器把请求转发给脚本文件,脚本文件处理完的结果返回给服务器,服务器返回给客户端。

写回答 关注

1回答

  • 咚咚呛
    2019-10-22 23:12:05

    这个问题挺好的,先给同学点个赞,这里可以归纳为两个问题,我们捋一下。

    1. HTTP服务器是否应该处理HTTP业务?

    2. HTTP应该怎么转发请求到脚本应用?

    首先第一个问题,HTTP服务器是否应该处理HTTP业务?

    要看什么性质的HTTP服务器,有专门做代理的,比如Nginx,也有应用服务器Apache,这些都是HTTP服务器,他们可以处理HTTP请求,也可以将HTTP请求转发给后端应用,当然主要功能是转发请求。

    除了这类HTTP服务器,我们还可以看到嵌在Web框架中的HTTP服务器,比如Django、Tornado等等,这些嵌进去的,也是HTTP服务器。

    我们常见的Nginx、Apache,他们一般将HTTP请求转发到后端应用,但不代表他们不处理业务逻辑,事实上Nginx也有做HTTP的业务处理,比如Nginx 404行为,Nginx默认页等等,这些都是Nginx处理的业务逻辑。

    而这些行为,在原理上看来,都是和本课程一样的。

    第二个问题,HTTP应该怎么转发请求到脚本应用?

    首先这里需要明确一点,绝大多数的在代理服务器后面的应用,当暴露端口的时候也是一种HTTP服务(除了一些用unix socket、wsgi、fastcgi等协议启动的),对于转发的过程,如果采用了协议,那么就通过协议组件去把数据封装起来发送给应用,如果直接暴露端口的话,那就是直接转发。

    这里需要理解一点的就是,不管是经过协议、还是经过端口暴露的方式,后端应用如果是基于web框架去开发的话,都需要按照报文格式去把报文解析出来,然后做处理、再返回,所以在应用上,也会做一次HTTP请求的分析。

    以上。

    相信通过这个解答,同学可以对HTTP服务器有个深刻的认识,希望可以给你解答这个问题。


【计算机网络篇】从0到1 实现HTTP服务器开发

快速&系统 在实践中掌握计算机网络编程基础

12138 学习 · 42 问题

查看课程

相似问题