脚本宝典收集整理的这篇文章主要介绍了PHP中的HTTP协议,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一、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' => "localhostrn",
'method' => "POST",
'header' => "Content-type:application/x-www-form-urlencodedrn" . "Content-length:".strlen($postData)."rn",
'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.1rn";
$request .= "Host:locahostrn";
$request .= "Content-type:application/x-www-form-urlencodedrn";
$request .= "Content-length:" . strlen($postData) . "rn";
$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);
以上是脚本宝典为你收集整理的PHP中的HTTP协议全部内容,希望文章能够帮你解决PHP中的HTTP协议所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。