题目有点奇怪,我来表达一下。我使用这种方法来生成发布请求:
http://www.jonasjohn.de/snippets/php/post-request.htm
没关系,但是在调整大小之后,我意识到数据发生了一些变化,有不需要的空白。只有在更大尺寸的情况下,才会出现“分块”标志。我将 Http/1.1 协议更改为 Http/1.0,现在传输看起来不错!但是有什么落后的陷阱吗?
题目有点奇怪,我来表达一下。我使用这种方法来生成发布请求:
http://www.jonasjohn.de/snippets/php/post-request.htm
没关系,但是在调整大小之后,我意识到数据发生了一些变化,有不需要的空白。只有在更大尺寸的情况下,才会出现“分块”标志。我将 Http/1.1 协议更改为 Http/1.0,现在传输看起来不错!但是有什么落后的陷阱吗?
当然,http 1.0 和 1.1 之间有许多重要的区别,请查看本文以获得概述。
我可以直接发现影响您的代码的一个是
// send the request headers:
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
Host 标头字段在 http 1.0 中不存在,这可能会影响您通过基于名称的虚拟主机发布到托管多个域和/或子域的服务器的能力- 服务器不会知道您正在调用的域。
作为一般说明,以这种方式编写发布请求是一个很好的练习,了解幕后发生的事情总是很好,但出于生产目的,我会使用成熟的、经过良好测试的机制,如cURL
并供参考: