轻微理解过HTTP协议的人知道,浏览器提交要求的本色是向做事器发送一个要求信息,这个要求信息包涵要求行、要求头、要求体三部分组成。当然,要求体非必需。而后做事器根据要求信息返回一个相应信息。连接断开。下面我们通过 一张图片来大概理解一下 。
浏览器发出要求,做事器相应要求
图片简阐明浏览器发出要求(格式)
要求首行:要求办法 要求路径 协议和版本,例如:GET /index.html HTTP/1.1。
2~n要求头:要求头名称:要求内容,即为key:value格式,例如:Host:localhost:8080。
空行:用来与要求体分开。
要求体:GET没有要求体,只有POST有要求体。
GET要求
HTTP默认的要求办法是GET。
GET:
没有要求体。
数据必须在1K之内。
GET要求数据会暴露在浏览器的地址栏中。(密码)
POST要求
数据不会涌如今地址栏中。
数据的大小没有上限。
有要求体。
要求体中如果涌现中文,会利用URL编码。
利用表单可以发送POST要求,但表单默认是GET
做事器相应要求(格式)
相应首行
相应头信息
空行
相应体
通过上面的内容,我想大家大概知道了http的主要性了。作为php程序员在日常的项目开拓中也肯定会用到http协议。如果想要进一步的提高自己的编程水平的话,那就有必要去深入的理解一下http协议。
目前我正在恶补学习关于php的http编程,很多东西以前还存在困惑的,现在也逐渐豁然开朗,也从中受益匪浅。希望分享给大家。下面我们先大略的理解一下http协议,心及什么是SOCKET。里面涉及的知识比较多,以是只能只管即便以大家能接管的办法给大家呈现。
什么是HTTP协议官方的阐明是:http(HTTP-Hypertext transfer protocol):超文本传输协议,基于要求/相应模式。
它详细的规定了www做事器与客户端之间数据传送的通信规则。是一个无状态协议,和FTP比较而言,ftp是有状态的。
什么是Socket?Socket的原意是“孔”或“插座”的意思。一样平常普遍叫它“套接字”,它的浸染是用来描述IP地址和各端口。我们可以将其理解为一个通信链的句柄。它可以实现不同主机之间的相互通信。
Internet上的主机都装了多个做事软件,比如XWAMP,phpstudy等,而且同时供应用户多种做事,每种做事都有相应的一个Socket被绑定在相应的一个端口上面,而不同的端口它所对应的做事内容也不一样。
以是,实在通过socket操作远程文件和读写本地文件也就变得非常大略。这里我们可以把本地文件算作是通过硬件传输的,而远程文件是通过internet通报。
下面我们一起通过一段代码来消化一下上面 的内容。
实现:通过fsocketopen()仿照socket将做事本地做事器链接的内容显示在浏览中;
代码:
1、先新建一个test.php文档:
<?php
echo \"大众hello world!\"大众;
?>
并保存.
2、新建一个test.php文档,并键入以下代码
$sk = fsockopen('localhost',80,$errno,$errstr,5); //利用localhost本地做事器,80端口,如果出错则返回缺点号,缺点内容,5秒运行韶光;
$arr = array(
'GET /http/test.php HTTP/1.1',
'host:localhost',
'',
''
);
$str = implode(\"大众\n\公众,$arr); //将$arr数组以回车符分隔
fwrite($sk,$str); //将内容写入文档流
while ($row = fread($sk,32)){ //循环读取$sk里面的内容每次读32字节
echo $row;
}
fclose($sk); //末了关闭
运行结果:如下图
上面代码运行结果
希望对大家有用,不然今晚白熬夜了.