资讯专栏INFORMATION COLUMN

PHP中的HTTP协议

jollywing / 807人阅读

摘要:一协议无状态每次请求完成就结束连接,下一次请求与上次请求没有关系。报文交互的信息。模拟请求方式,最后回车换行方式,最后回车换行输入参数用法利用来发送数据方式拓展初始化会话设置提交网址提交方式提交数据提交成功后返回数据字符串执行关闭会话

一、HTTP协议

无状态:每次请求完成就结束连接,下一次请求与上次请求没有关系。

报文:HTTP交互的信息。

telnet模拟请求:

// GET方式,最后回车换行
Aston$ telnet 127.0.0.1 80
GET /Tools/Test/http.php HTTP/1.1
Host:localhost

// POST方式,最后回车换行,输入参数
Aston$ telnet 127.0.0.1 80
POST /Tools/Test/http.php HTTP/1.1
Host:localhost
Content-type:application/x-www-form-urlencoded
Content-length:20

name=chenjian&age=28

fiddler用法:

利用file_get_content来发送数据:

$data = array(
    "name"     => "chenjian",
    "age"     => 28
);

$postData = http_build_query($data);

$opts = array(
    "http" => array(
        "host"         => "localhost
", 
        "method"     => "POST", 
        "header"     => "Content-type:application/x-www-form-urlencoded
" . "Content-length:".strlen($postData)."
",
        "content"    => $postData
    );
);
$context = stream_context_create($opts);
file_get_contents("http://localhost/http/index.php", false, $context);

socket方式:

$data = array(
    "name"     => "chenjian",
    "age"     => 28
);
$postData = http_build_query($data);
$fp = fsockopen("localhost", 80, $errno, $errorStr, 5);
$request = "POST http://localhost/http/socket.php HTTP/1.1
";
$request .= "Host:locahost
";
$request .= "Content-type:application/x-www-form-urlencoded
";
$request .= "Content-length:" . strlen($postData) . "
";
$request .= $postData;

fwrite($fp, $request);
while (!feof($fp)) {
    echo fgets($fp, 1024);
}
fclose($fp);

curl拓展:

$url = "http://localhost/http/curl.php";
$data = array(
    "name"     => "chenjian",
    "age"     => 28
);
// 1. 初始化curl会话
$ch = curl_init();
// 2. 设置
curl_setopt($ch, CURLOPT_URL, $url);            //提交网址
curl_setopt($ch, CURLOPT_POST, 1);              //提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    //提交数据
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    //提交成功后返回数据字符串
// 3. 执行
$out_put = curl_exec($ch);
// 4. 关闭会话
curl_close($ch);
var_dump($out_put);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23202.html

相关文章

  • 深入剖析 Web 服务器与 PHP 应用之间的通信机制 - 掌握 CGI 和 FastCGI 协议

    摘要:深入协议从功能上来讲,协议已经完全能够解决服务器与应用之间的数据通信问题。消息头信息主要的消息头信息如下用于表示协议版本号。从服务器发送到应用,表示中止一个处理中的请求。另外我们还需要明确一点就是服务器与进程间通信是无序的。 本文首发于 深入剖析 Web 服务器与 PHP 应用之间的通信机制 - 掌握 CGI 和 FastCGI 协议的运行原理,转载请注明出处! 身为一名使用 PHP ...

    mumumu 评论0 收藏0
  • PHP协议总结

    摘要:参考了这篇文章伪协议实现命令执行的七种姿势,并根据自己理解进行了总结,也算是加深一下印象,方便以后使用。说明文件系统是使用的默认封装协议,展现了本地文件系统。允许直接访问指定的文件描述符。 参考了这篇文章:php伪协议实现命令执行的七种姿势,并根据自己理解进行了总结,也算是加深一下印象,方便以后使用。 file:// 协议 条件: allow_url_fopen:off/on...

    huaixiaoz 评论0 收藏0
  • PHP面试常考之网络协议

    摘要:是为互联网服务的协议族,它是网络通信协议的统称,由和等协议组成。预告本周五更新面试常考题之会话控制和网络协议,敬请期待。以上内容摘自程序员面试笔试宝典书籍,该书已在天猫京东当当等电商平台销售。 你好,是我琉忆,欢迎您来到PHP面试专栏。本周(2019.2-25至3-1)的一三五更新的文章如下: 周一:PHP面试常考之会话控制周三:PHP面试常考之网络协议周五:PHP面试常考题之会话控...

    joywek 评论0 收藏0
  • 腾讯与阅文技术合作 微服务框架Tars再添PHP

    摘要:引言作为由腾讯公司开源的优秀框架与服务部署运维解决方案,被阅文集团引入了实际实践中,同时阅文集团对在语言层面进行了能力的补全,令如虎添翼。作为腾讯公司的优秀框架与服务部署运维解决方案,可以满足上述的所有需求。 梁晨(Ted),任职阅文集团技术中心,负责起点中文网的WEB后台开发工作。曾负责腾讯上海企业产品部营销QQWeb后台开发、QQ公众号Web后台开发,对大型网站技术架构,有自己的经...

    yanwei 评论0 收藏0
  • 不一样的PHP基础知识汇总

    摘要:前言整理了一些关于相关的基础。第一部分状态行由协议版本号状态码状态消息三部分组成。由单一的顺序的执行线程一个当前状态和一组相关的系统资源所描述的活动单元。 showImg(https://segmentfault.com/img/bVbfi0I?w=480&h=241); 前言 整理了一些关于PHP相关的基础。请大家随意摘看。 通信协议 网络通信协议是一种网络通用语言,为连接不同操作系...

    张春雷 评论0 收藏0
  • PHP回顾之执行流程及相关概念

    摘要:通过,脚本层无需过多考虑执行的具体环境,而本身则可以让针对自己的特点给出特有实现。模式下,也只执行一次。这几个概念的关系如下网关协议,与语言无关,所以与关系也不大。总结本文简要回顾了程序的架构和执行流程,并对几个容易混淆概念做了介绍。 转载请注明文章出处:https://tlanyan.me/php-review... PHP回顾系列目录 PHP基础 web请求 cookie we...

    jsdt 评论0 收藏0

发表评论

0条评论

jollywing

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<