轻微理解过HTTP协议的人知道,浏览器提交要求的本色是向做事器发送一个要求信息,这个要求信息包涵要求行、要求头、要求体三部分组成。
当然,要求体非必需。
而后做事器根据要求信息返回一个相应信息。
连接断开。
下面我们通过 一张图片来大概理解一下 。

浏览器发出要求,做事器相应要求

图片简阐明

浏览器发出要求(格式)

php模拟postPHP虚拟主机模仿socket发送GETPOST要求 Vue.js

要求首行:要求办法 要求路径 协议和版本,例如: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); //末了关闭

运行结果:如下图

上面代码运行结果

希望对大家有用,不然今晚白熬夜了.