HTTP 中 GET 和 POST 的区别
Difference between GET and POST in HTTP
有一些帖子说POST
和GET
的区别,但我的问题更具体,这里是:
使用这个 VBScript 示例,我可以使用 GET 从服务器发送和获取数据:
Send "https://www.server.com/send.php"
Sub Send(url)
Dim objHTTP, MyResponse
Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )
objHTTP.Open "GET", url, False
objHTTP.Send "One Plus One"
MsgBox objHTTP.ResponseText()
End Sub
但是如果我将 GET
更改为 POST
,这个相同的示例仍然有效,所以:
- 有什么区别?
- 同时发送和接收数据应该用什么?
这是我在服务器上的 PHP 代码:
<?php
$stdin = fopen('php://input', 'r');
$Data = '';
while (!feof($stdin))
$Data .= fread($stdin, 8192);
$Data .= " Equals Two";
echo $Data;
?>
请注意,我没有提到 HTML,因为我的代码与它无关,但如果差异与 HTML 有关,我很乐意了解.
一个POST
请求有一个正文,这个正文携带了你试图随请求发送的信息,POST
的主要优点是这个数据可能很长,你甚至可以发送文件。
GET
没有主体,如果你想发送任何数据,它必须在查询字符串中携带,这基本上是 ?
之后的东西 URL。示例:
https://google.com/?q=this+is+the+data
随着数据进入 URL,您无法真正将任何您想要的东西放在那里。大多数浏览器和服务器会将最大 URL 大小限制在几千字节的数量级,如果您打算 post 长文本或文件,它根本不是很有用。
如果你要发送和接收数据,你必须使用POST方法发送数据到将处理这个数据的服务器并且return一个结果,这个结果可以显示直接在界面上或保存在用户的文件中。以后使用。最实用的方法是使用JSON。将结果保存为临时文件或 * .json 文件。
有一些帖子说POST
和GET
的区别,但我的问题更具体,这里是:
使用这个 VBScript 示例,我可以使用 GET 从服务器发送和获取数据:
Send "https://www.server.com/send.php"
Sub Send(url)
Dim objHTTP, MyResponse
Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )
objHTTP.Open "GET", url, False
objHTTP.Send "One Plus One"
MsgBox objHTTP.ResponseText()
End Sub
但是如果我将 GET
更改为 POST
,这个相同的示例仍然有效,所以:
- 有什么区别?
- 同时发送和接收数据应该用什么?
这是我在服务器上的 PHP 代码:
<?php
$stdin = fopen('php://input', 'r');
$Data = '';
while (!feof($stdin))
$Data .= fread($stdin, 8192);
$Data .= " Equals Two";
echo $Data;
?>
请注意,我没有提到 HTML,因为我的代码与它无关,但如果差异与 HTML 有关,我很乐意了解.
一个POST
请求有一个正文,这个正文携带了你试图随请求发送的信息,POST
的主要优点是这个数据可能很长,你甚至可以发送文件。
GET
没有主体,如果你想发送任何数据,它必须在查询字符串中携带,这基本上是 ?
之后的东西 URL。示例:
https://google.com/?q=this+is+the+data
随着数据进入 URL,您无法真正将任何您想要的东西放在那里。大多数浏览器和服务器会将最大 URL 大小限制在几千字节的数量级,如果您打算 post 长文本或文件,它根本不是很有用。
如果你要发送和接收数据,你必须使用POST方法发送数据到将处理这个数据的服务器并且return一个结果,这个结果可以显示直接在界面上或保存在用户的文件中。以后使用。最实用的方法是使用JSON。将结果保存为临时文件或 * .json 文件。