このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

HTTPのヘッダについて

発言者:AK
( Date Tuesday, May 25, 1999 15:13:34 )


HTTPのヘッダに何が設定されているか知りたいのですが、
一覧等が載っているサイトを知りませんでしょうか?

要は、クライアント(ブラウザ)でファイルをアップロード
する時に、アップロードするファイルのサイズが取得できるか
を知りたいのです。
HTTPヘッダに送信する情報のサイズがあって環境変数により
CGIで取得できるか。。

ご存知の方、知恵を貸して下さい。

いその@とし研 さんからのコメント
( Tuesday, May 25, 1999 16:33:23 )

RFC 1945 の日本語訳が見つからないので、私は下記の資料を見ています。
#田中先生は、RFC を英語で読んでらっしゃるのですか?

→  
       ハイパーテキストトランスファープロトコル第1.0版仕様書(日本語翻訳版) 

いその@とし研 さんからのコメント
( Tuesday, May 25, 1999 16:38:17 )

参考ページ名に改行が入っちゃいました。
これって、Netscape だと見えるけど、WSM Wathcer だと見えなくなっちゃいますね。

田中求之 さんからのコメント
( Wednesday, May 26, 1999 01:20:08 )

>HTTPヘッダに送信する情報のサイズがあって環境変数により
>CGIで取得できるか。。

HTTP ヘッダに content-length というヘッダがありますので、これでブラウザが
送り付けてきたデータの量はわかります。CGI でも取得できます。もっとも、
MacOS の CGI の場合でしたら、Full Request を自分で解析することになりますが。

田中求之 さんからのコメント
( Wednesday, May 26, 1999 01:20:24 )

>#田中先生は、RFC を英語で読んでらっしゃるのですか?

はい。それがいちばん確実なので。ただ、最近は忙しくて、丹念に RFC を読んでいる
時間がとれなくて、最近の動向はあまり知りません。

RFC は、非常に癖のある文書なんですが、情報を的確に得るには最適ですね。

もっとも、たいていのことでしたら、アスキーから出ている RFC 辞典で話は
分かりますので、こちらでしらべて、よく分からない場合には、RFC の詳しく
書かれている部分を拾い読みするという方法で、いいのではないかと思います。
まぁ、アスキーの辞典は高いですけど。

AK さんからのコメント
( Wednesday, May 26, 1999 10:29:29 )

いその@とし研先生、田中先生、
貴重なご意見ありがとうございました。

ところで・・・。
いその@とし研さんから教えてもらったHTTP仕様書の説明には
『この仕様では義務づけていないが、アプリケーションはオブジェクトの
 メディアタイプに関係なく転送されるオブジェクトボディの大きさを
 このフィールドを用いて指定することを強く推奨する。』
と、書いてあるので、必ずブラウザから取得できる情報では無いという事
ですよね。ということは、あまり信頼できる情報では無いような気がします。

と、言う事は、ブラウザの<INPUT TYPE=FILE>で送信されるファイルサイズは、
ブラウザから送信する前・・・HTTPのヘッダからは判断できないという事で
しょうか?


何がしたいのかというと、<INPUT TYPE=FILE>でブラウザからサーバにファイル
を送信する際に、送信するファイルサイズが規定以上であればエラー処理を
行うような事をしたいのです。
例えば、ブラウザから10MBのファイルを送信しようとしている時、サーバが
HTTPのヘッダから送られてくるファイルサイズを取得して『送信するファイル
サイズは1MB以下にして下さい』のようなエラーメッセージをブラウザに表示
させる・・・。
そんな事をしたいのです。

知恵を貸して下さい。

ちなみにサーバのOSは現在、UNIXかMacOSを検討中です。

今井真人 さんからのコメント
( Friday, May 28, 1999 07:02:44 )

>何がしたいのかというと、<INPUT TYPE=FILE>でブラウザからサーバにファイル
>を送信する際に、送信するファイルサイズが規定以上であればエラー処理を
>行うような事をしたいのです。

 画像ファイルを貼り付ける掲示板などが、参考になるのではありませんか?