当前位置:C++技术网 > 资讯 > c++运用于网络后台编程

c++运用于网络后台编程

更新时间:2017-03-15 11:59:59浏览次数:1+次

用c++怎么写网页后台?实现功能?就是自己写好网页,然后怎么从里面读取内容文件,还有自定义插件等等

C++技术网会员解答:

    您好,感谢对C++技术网的支持与信任。

    写网页后台程序,无法用三言两语来描述整个开发过程。不过,我会将整个开发的思路流程告诉你,方便你学习参考,有一个大方向去学习。

    网页web是计算机网络的应用层的通信协议Http的应用。如果你要写网页后台程序,那么你一定要学习http协议。每次访问一个网页,也就是浏览器向服务器发送了一个http请求,服务器收到请求后,解析http协议数据包,然后分析出来请求的地址和参数,然后将结果打包为http协议数据包返回给浏览器。这是一个基本的工作流程。

    然而我相信,你看完这个解释,好像明白是这么一回事,但是再细想起来,依然无法下手。有一个整体的印象是必要的。下面我来细化的讲讲思路。

    Http协议是在TCP协议之上的。也就是说,我们如果要完全自己写网页后台的话,我们写一个TCP服务器就行了。TCP服务器启动后,监听端口80,这样就可以获取浏览器发来的http请求了。不过,此时,服务器端只知道收到的是一个TCP报文,报文内的数据包含了http协议数据包。如果要解析http,那就是将TCP的数据包按照http协议解析出来。解析的方法就是将每一个字段的值读取出来,然后根据协议来理解每一个值代表的含义。比如我们可以解析出来请求的地址,请求的方法GET等。

    而TCP服务器的开发则是Socket编程。服务器端就是创建套接字、绑定IP、监听端口、等待客户端连接、接受客户端数据、处理数据、发送数据给客户端、关闭客户端连接。这是一次完整的套接字编程,也就是处理TCP请求的服务器端的流程。而对HTTP的协议的处理,则是在处理数据这个环节做的。

    对于一般的静态网页,我们在TCP层处理数据(解析HTTP)时,分析出来请求的方式和地址以及要获取的页面。然后读取服务器的网页文件,然后打包为http协议数据包的格式存入缓冲中。然后处理就完毕了。当进入了TCP发送数据的流程,自然就将HTTP协议数据包发给了浏览器。

    如果是动态网页,那么在解析http请求后,得知是动态网页(通过识别请求的url的格式,比如后缀或者比对后台的配置文件匹配到的动态url的格式),那么会将这个处理过程进一步传递给对应的处理程序,比如php、asp.net、jsp、python。等这个处理完后,返回http解析的位置,然后再返回tcp处理数据的流程。最后再返回给浏览器。

    如果你想用C/C++写网页web的处理程序,而不是用php之类的,当然也是可以的。你只要在http解析的时候,调用一个对应的接口就行了。

    当然,以上是自己完全搭建http请求处理以及web后台程序处理的整个过程,还是比较详细的。你可以参照这个过程,尝试自己写一个web服务器程序。类似于IIS+asp.net和apache+php。你自己这样实现,就是自己的http服务器+C++。

    如果是想快速做服务器后台程序,没有必要完全写一遍。CGI、FastCGI等这些框架都是直接支持C/C++来处理网页请求的。但是了解上面的过程,可以直接让你晋升为Web服务器大神。如果你能够自己写一个微型的web服务器,那就真的更牛叉了。

    而如果使用人家写的框架,很多功能都是通过插件实现的,提供了完善的库来编程。

    这个解答是否能够完全解答你的问题呢?再细致的问题,需要去学习更多的书籍了。