0

トピックは少し奇妙です、私は自分自身を表現させてください。このメソッドを使用して投稿リクエストを生成しました。

http://www.jonasjohn.de/snippets/php/post-request.htm

それは問題ありませんが、サイズを変更した後、データが少し変更され、不要な空白があることに気付きました。より大きなサイズの場合のみ、+「チャンク」フラグが表示されました。Http/1.1 プロトコルを Http/1.0 に変更したところ、転送が良好に見えるようになりました。しかし、後ろ向きの落とし穴はありますか?

4

1 に答える 1

1

もちろん、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のような本格的で十分にテストされたメカニズムを使用します。

そして参考までに:

  • rfc 1945は http 1.0 を定義します
  • rfc 2616は http 1.1 を定義します
于 2012-09-13T22:30:59.813 に答える