uuyyhhjj 发表于 2024-4-14 08:39:22

开源简单HTTP服务器 能跑wordpress fastcgi php web hpsocket

主要参考了下面两个文档写的,基于hpsocket实现,本身对HTTP服务器工作原理了解不多
HTTP灵魂拷问,你了解你的每次请求吗
developer.mozilla.org/zh-CN/docs/Web/HTTP

实现了基本的GET请求,这部分比较完整,测试过大文件下载,hash没问题,如果当只读的网盘,自己加上用户验证功能控制访问基本上是完全能用了
POST部分只是能让wordpress跑起来,还有很多都没处理,感觉东西很多,自己又不懂只能先放一放了,服务器接收数据的潜在危险性太高
php部分使用tcp通信,也就是依赖php-cgi.exe,程序内部没有对进程工作状态进行管理,需自行实现
fastcgi部分由于看不懂英语文档,看得懂估计也没心思慢慢看,中文资料又少,参考了一些翻译,勉强能工作了
线程池部分脑子还是糊的,这部分需要重构,因为要涉及指针这东西用起来感觉很绕
如果你发现内存泄漏,别担心,这是官方封的库有问题,这部分我查了很久,有些资源就是释放不掉,在尝试替换hpsocket6.0.1的源码后,表面上看着是解决了,所以很可能是官方库太老导致的,解决方案之一就是自己替换最新的源码

之前没写过这种多线程与多线程交互的程序,目前整体走了一遍,大致上算是理解了http的请求和响应流程,能跑起来了,还没想好接下来怎么去重构成任务管理的方式,让其工作起来更科学些,应该是利用多线程每次请求向线程池登记一个任务,丢到线程里慢慢处理,这样hpsocket的主线程就不会阻塞,处理完再触发事件,根据ID检测链接是否中断,没中断就响应,中断就释放资源,等理好思路把代码重构一下,这个摸黑整出来的源码就放出来给大家学习吧,暂时先告一段落了,看火山短时间也不会有啥大更新,无符号,结构体这些估计是没戏了,最近在搞的go我肯定是用不上的


注意本程序仅供内网演示使用,如果想在公网上使用,需注意安全


下面是演示,忘记点phpinfo了,懒得重新录了,就这样吧
本来想大文件下载和播放视频进度条拖动演示的,但考虑会有画面,所以就没录进去,这个自己测试吧





压缩包包含WWW文件夹中部分资源,默认放到C:\www测试

hs999xl 发表于 2024-4-14 22:14:46

致敬发烧友

fengyishen 发表于 2024-4-15 04:00:34

请求写过了,看看PHP部分咋实现的,感谢分享,学习学习

aycap 发表于 2024-4-15 09:27:43

支持一下

山梦 发表于 2024-4-15 10:03:23


致敬发烧友

飞丶宇 发表于 2024-4-16 21:41:01

:):):)这个看着高端多了。

hmyroot 发表于 2024-4-18 21:39:50

好烧脑的网络服务器开发
页: [1]
查看完整版本: 开源简单HTTP服务器 能跑wordpress fastcgi php web hpsocket