68user's page 掲示板

Prev< No. 1965〜1970> Next  [最新発言に戻る] [過去ログ一覧]
No. 1965 # 御影教授 [URL] [E-mail] 2001/05/18 (金) 10:37:57
はじめまして。PERL版HTTPクライアントのページが、大変役に立ちました。ありがとうございます。
最近、会社のフィルタリング(^^;が厳しくなっきた為、ちょうど、作っていたところでした。STDOUTへ
バーナーを挿入する無料サーバー(*1)を経由して、画像ファイル(*2)をGETする場合、一旦、
*2を*1へ保存してから、*2の埋め込みページを出力する、以外の面白いアイデアがあれは、お
聞かせ下さい。
#ウェブメールクライアントも作らないと(^^;

No. 1966 # 炭酸 2001/05/18 (金) 18:30:11
レスありがとうございます>68userさん
言葉が足りませんでした補足させてください
RFC2616 の14.16あたりを読んでやってみています

■リクエスト
1回目
PUT /test.txt HTTP/1.1
Host:
Content-Length: 10
Content-Range: bytes 0-9/20

あいうえお

2回目
PUT /test.txt HTTP/1.1
Host:
Content-Length: 10
Content-Range: bytes 10-19/20

かきくけこ

■結果
レスポンスヘッダには Content-Range ヘッダがありません
リクエストに Content-Range ヘッダがないときと同じように
動作しているようです
サーバにはかきくけこというデータが上がった状態になります
(2回目のリクエストで上書きされているようです)

サーバーのバージョンは
Apache/1.3.12(Unix) (Red Hat/Linux) tomcat/1.0 DAV/1.0.0 mod_perl/1.21
ですひょっとしてサーバーがレンジに対応していないのでしょうか?
ネットワークプログラムの初心者なのでリクエストに問題があるのかと不安に
思い質問させていただきました

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 1967 # /tk 2001/05/18 (金) 22:10:11
>>1964 68user
> スカラーコンテキストなので、スカラー値が返ります。
うう。やはり基本的な事がわかってなかった。

何でスカラーコンテキストになるのかが
理解出来てなかったです。

今回の件で青ラクダ本のコンテキストの項や
サブルーチン(プロトタイプ)の項を読んで
自作の関数に getprotobyname() 渡して
その中で print したりして
何となく理解出来たつもりになりました。
# 今まで引数の型の宣言なんて知らなかった。

68userさん。ご回答ありがとうございました。


で、お礼の後の質問で恐縮なんですけど
自分なりに分かったつもりなった結果
> socket(SOCKET, PF_INET, SOCK_STREAM, @a=getprotobyname('tcp')) || warn "$!";
これの警告が出る理由は getprotobyname('tcp') の
リストの要素数が 3つだからだとと思うのですが
実のところどうなんでしょう?
# またもや間違っている可能性大

No. 1968 # ED 2001/05/18 (金) 23:30:08
>68userさん
ありがとうございます。
助かります。

No. 1969 # The WAY [URL] 2001/05/19 (土) 00:16:33
>>1966 炭酸
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6 によると
>If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server.
とあるので、
>サーバには「かきくけこ」というデータが上がった状態になります。
>(2回目のリクエストで上書きされているようです。)
というのは仕様上正しい動作だと思います。

>>1960 炭酸
を読むと、おそらく「レジュームの逆」を行いたいのだと思うのですが、それは PUT ではできないと思います。
# FTP の PUT でもできないですよね?

No. 1970 # 68user 2001/05/19 (土) 00:22:47
>>1967 /tk
> これの警告が出る理由は getprotobyname('tcp') の
> リストの要素数が 3つだからだとと思うのですが
そうですね。
    socket(SOCKET, PF_INET, SOCK_STREAM, @a=getprotobyname('tcp'))

    Protocol not supported at -e line 1.
となりますが、これは ('tcp','TCP',6) というスカラーが返って、
先頭の 'tcp' の値が使われるのでエラーになると思っていましたが、
勘違いでした。

('tcp','TCP',6) というリストをスカラーコンテキストで評価
したため 3 が返り、
    socket(SOCKET, PF_INET, SOCK_STREAM, 3)
と等価になってしまったということですね。

>>1966 炭酸
すいません。今 apache で PUT メソッドを有効にするには
どうすればいいんだっけ? と調べているところです。

# apache 単体では無理で、mod_put か DAV あたりを入れないと
# ダメみたいですね。

また PUT や Content-Range は実際に使ったことがないので、
あまり期待しないで下さい。

Prev< No. 1965〜1970> Next  [最新発言に戻る] [過去ログ一覧]