关于PHP开发HTTP服务器
在这里本人谈谈我自己做服务器过程中遇到的问题,希望跟我一样临时需要开发php服务器的新手可以获得帮助,至于高手,你就无视我吧。
网上找的很多资料都是讲php如何模拟发送http请求的,很少有关于服务器如何获取客户端请求的资料,或许经过系统学习的都知道了,但是对于本人这种临时学习的,还真是个硬伤。
经过我查找的资料 php做的服务器接受客户端的数据可以通过$_POST,$_GET,$_REQUEST来获取。 客户端需要用对应的$_post,$_get 来提交数据,$_REQUEST似乎都可以。
至于$_POST,$_GET的区别,百度上太多了 你可以自己找找
$_POST,$_GET返回的就是你客户端传过来的参数,你可以通过处理这些参数来完成功能,至于你想返回数据给客户端,只需要echo就行了
如果客户端使用get方式发送的请求,想获取数据很简单,只需要使用$_SERVER['QUERY_STRING'] 即可获取,信息来源于http://hi.baidu.com/iigyphfsjfgjkye/item/f180b2fbc5aa18ee1b111fc1 更多信息自己查看吧
我这次做的php服务器,不知道是什么原因,用$_POST,$_GET,$_REQUEST不能获取到数据。 所以找了$GLOBALS[$HTTP_RAW_POST_DATA]和file_get_contents("http://input")来获取数据
上面两个方式都能获取客户端post过来的请求 第一个听说似乎不能收一种数据,忘了
我使用的是第二个 $request = file_get_contents("http://input") 就得到了客户端post过来的参数了。
在这里介绍一种软件Fidder,百度即能下载。这软件能代替客户端来发送get,post等等等方式的请求,能够测试你服务器是否能收到客户端的请求。
回复讨论(解决方案)
lz想表达什么意思。
不管怎么样都要赞一个,希望以后会有更多自己的心得分享给大家
感觉每个帖子都能帮助到我,楼主的经验非常好
楼主这是对自己学习的总结吗?
用$_POST,$_GET,$_REQUEST不能获取到数据。 所以找了$GLOBALS[$HTTP_RAW_POST_DATA]和file_get_contents("http://input")来获取数据。
你的数据是二进制流吗?
$_POST:通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。
也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。
但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。
补充说明: PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型
我还以为LZ是要用PHP开发一个类似Apache的Web服务器呢,原来。。。。
我觉得这应该是软文推广。。。看到最后一行秒懂。。好吧,我想多了。
lz想表达什么意思。 我只是分享一下我自己遇到的问题而已 或许能帮到跟我一样临时需要的人咯……
楼主这是对自己学习的总结吗? 可以算吧,不过我做完这服务器 以后或许也不会使用php呢 毕竟是临时需要而已嘛……
用$_POST,$_GET,$_REQUEST不能获取到数据。 所以找了$GLOBALS[$HTTP_RAW_POST_DATA]和file_get_contents("http://input")来获取数据。
你的数据是二进制流吗?
$_POST:通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。
也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。
但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。
补充说明: PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型 嘻嘻 我是没经过系统学习的 只是查过一些资料而已 理解不深 多谢指教……
上一篇: PHP动态多文件上传的具体代码分享
下一篇: php实现XSS安全过滤的方法
推荐阅读
-
关于PHP开发的9条建议
-
关于php mvc开发模式的感想
-
PHP开发Apache服务器配置
-
PHP开发之用微信远程遥控服务器
-
PHP服务器端API原理及示例讲解(接口开发)
-
php直播平台源码基于 Nginx 搭建(rtmp、http)直播服务器
-
前端笔记知识点整合之服务器&Ajax(上)服务器&PHP&数据交互&HTTP
-
基于HTTP长连接的"服务器推"技术的php 简易聊天室
-
nodejs http-proxy 开发反向代理服务器,防火墙,过滤常见的web渗透
-
在 Ubuntu 16.04 为 Nginx 服务器安装 LEMP 环境(MariaDB,PHP 7 并支持 HTTP 2.0)