Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/101-bfdf29de

-件のトラックバック

-件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

【safari】kCFErrorDomainCFNetwork error 303

safari.gif

chunkで送ると、safariは受け付けてくれなかった。
しかし、chunkの終端を示す0の後に空行(CR+LF)を付けると上手くいった。

#!/usr/local/bin/ruby
#うまく動作する例
STDOUT.binmode
text=<<EOF
Status: 200 OK
Transfer-Encoding: chunked
Content-type: text/plain
Content-Disposition: attachment; filename="hoge.txt"

3
aaa
3
bbb
3
ccc
0

EOF

text.each do |line|
print line.chomp + "\r\n"
end



#!/usr/local/bin/ruby
#うまく動作しない例
STDOUT.binmode
text=<<EOF
Status: 200 OK
Transfer-Encoding: chunked
Content-type: text/plain
Content-Disposition: attachment; filename="hoge.txt"

3
aaa
3
bbb
3
ccc
0
EOF

text.each do |line|
print line.chomp + "\r\n"
end


safari以外のブラウザはどちらでも動作する。chunkの終端の定義がRFCでどうなってるのかって問題なのかな。

『chunked safari kCFErrorDomainCFNetwork error 303』でググると、お困りの方がでてくる。

http://discussions.info.apple.com/thread.jspa?threadID=2289742&tstart=0
→IISは最後に空行を付けない仕様なのかな。

他にも事例報告ありですね。
http://blog.loadlimits.info/2009/11/safari%E3%81%AEkcferrordomaincfnetwork-error-303/
→こちらもお使いのProxyとsafariとでRFCの解釈が違うってことなのでしょうか。

RFCの2616の抜粋を以下に

The chunk-size field is a string of hex digits indicating the size of
the chunk. The chunked encoding is ended by any chunk whose size is
zero, followed by the trailer, which is terminated by an empty line.


最後に空行を付けるのが正しいという事ですかね。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/101-bfdf29de

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。