curlと1024バイトとExpect: 100-continue

GWも出社して動作確認の手使いと、今月末リリース予定の実装を進め中。

山手線も会社の食堂もガラガラでした。

 
 

curl-7.13以降では1024バイト以上のデータを送信する場合に「Expect: 100-continue」ヘッダを自動で付与するらしい。

パケットを取ったりログを仕込んで、やっと問題点の原因が分かった。

 

HTTP/1.1からBODYが大きい場合などに、先にヘッダだけ送りサーバの返事を待てるようになった。

その際に、サーバの返事が「4xx系なら中止」「100 系なら送信」のように振る舞える。

ただ「100-continue」に対応してないサーバ(HTTP接続な認証サーバとか)も存在する。

その場合、次のようなコードを追加することで問題を回避できる。

 

原因解明に1日かかった・・・。

もっと大きな問題が、あと3つ・・・ある。

タイトルとURLをコピーしました