• ベストアンサー

gzip

IE4.0以降、NN4.0以降ではgzip圧縮したものを読めると聞きました。 Content-encoding: gzip をヘッダに書けば、データをgzip圧縮して送れるのでしょうか。 そして、どうやってgzipするのでしょうか。 モジュールがあるのでしょうか? あるならそれの使い方とかもお願いします。

  • CGI
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • tujige
  • ベストアンサー率68% (13/19)
回答No.1

すごく手抜きですが、 #!/bin/sh echo "Content-type: text/plain" echo "Content-encoding: gzip" echo echo gzip -c << EOF hello myname is ${SERVER_NAME} EOF で、可能です。 手順としては、 1) ブラウザの encoding を判別し、適切な header を送信する。 2) gzip の展開が可能なブラウザなら、gzip 圧縮して送る。 です。 perl で実行するのなら、module が CPAN あたりに転がっているでしょう。 上記のような shell script なら、gzip コマンドを直接たたいてもいいし、perl でも、 open(STDOUT, "| /usr/bin/gzip -c") で可能です。

haporun
質問者

お礼

open(STDOUT, "| /usr/bin/gzip -c") でできました。 Perlでソースを配布しようかと考えているので、gzipの位置によって微妙ですが、なんとかなりそうです。 ありがとうございました。

関連するQ&A

  • gzip解凍をするには

    Flashで作成した*.swfファイル内容を変更してFlashの画像を差し替えるツールの作成をしていますが、 *.swfの最初の3バイトのデータがCWSの時はヘッダーのバージョン情報以降が gzip圧縮されているようですが、このバイナリーデータを解凍できずに困っています。解凍の方法を教えてください。

    • ベストアンサー
    • PHP
  • Apache2.X系のmod_deflateについて

    Apache2.0.52で「mod_deflate」を導入してます。 「Accept-Encoding: gzip,deflate」に対し、 レスポンスヘッダーの「Content-Encoding」は 「deflate」ではなく「gzip」なのでしょうか? ご存知の方、ご教授願います。

  • UNIXで圧縮したgzipをWINDOWSで解凍する方法

    - UNIXで圧縮したgzip形式のファイルを、WINDOWS上で解凍して 使いたいのですが、解凍方法、若しくは、解凍ツールをご存知の方が いらっしゃいましたら、是非教えてください。 特に、gzip形式にこだわっている訳ではないので、UNIXで圧縮したファイルを WINDOWS上で解凍する方法でも構いません。 実際に使用するファイルは、ORACLEのインポートデータです。 どうぞ、どんなアドバイスでも結構です、宜しくお願いいたします。 -

  • IIS+ActivePerl+Cygwinにて

    Perlで open(STDOUT, '| gzip'); としてhttpヘッダ以降を圧縮して出力することを、以前ここで教えてもらいました。 ここで問題なのですが、プロセスが完了してもgzipのごみプロセスが残りっぱなしなのです。 再表示するたびにごみが増えていき、だんだん不安定になっていきます。 最後に close(STDOUT); してもgzipは終了しないようです。 これを終了する手段はないものでしょうか? IISでなくてもUnix+Apacheでも同じようなことが起こるようなら、サーバーにアップロードできなそうです。

    • 締切済み
    • CGI
  • どこまでがヘッダ?

    メールのヘッダというものを初めて見て、そのあと色々検索してみたのですが、どこまでをヘッダと呼ぶのでしょうか? 半分勘なのですが Content-Transfer-Encoding: の次からなのかなぁと見て思ったのですが合っているでしょうか? よろしくお願いします。

  • HTTP1.1のProxyServerを作りたい

    HTTP1.1のProxyServerを作りたい いきなりですが、私がこの質問をするにいたったまでの経緯を話させていただきます。その後、その経緯を踏まえたうえで何点か質問があるのですが、それは後に書きます。 現在HTTP1.1のProxyServerを、C言語でBSDソケットを使って作成しようとしています。 しかし通信がうまくいきません。自分なりにおそらくこれが原因ではないかという、あたりをつけたんですが、その原因の解決方法がわかりません。その原因とは、 レスポンスのデータの区切りがわからないせいでデータがごっちゃになっているのではないか?。とうことです。 もう少し詳しく言うと、WebServerは、HTTP1.1Proxyは持続的接続を前提としたパイプライン接続をサポートしていると考えて通信しているため、一つのソケットに対して複数のレスポンスを返す。しかし現在の自分の書いているソースでは、一つのソケットから読み取れるだけ読み取ってそれをすべてclientのソケットに書き込んでいるため、レスポンスの区別がついていないのではないか?というのが問題点ではないかと考えています。 これを解決するためには、レスポンスのデータを区切りらなくてはなりません。それを知るためにはヘッダのContent-Lengthラベルを、読むのが一番早いのではないかと考えていますが、Transfer-Encodingなるプロトコルがあるようで、これを使って送信されてくるレスポンスの場合はContent-Lengthが使えません(データ部がhtmlの場合は大抵Transferを使っています)。なのでこのTransferプロトコルに対応するプログラムを書く必要性があるのですが、そのためにはデータ部を見なくてはいけないようなのですが、多くのレスポンスはデータ部をgzipで圧縮して送ってきています。 この過程を踏まえたうえでいくつか質問があります。 1つは、まずこの過程の上で何か自分は間違った解釈(プロトコルの理解違いや、問題点の見間違え等)をしていないでしょうか? 2つ目は、C(OSはlinux(Iphone)を使っています。)でgzipを解凍するための方法がわかりません。なにか参考になるサイトはないでしょうか? 3つ目は、参考になるHTTP1.1ProxyServerないしはクライアントの、ソースコードはないでしょうか?(1.0はいくつかみつけたんですが・・・) どれか一つの質問へのお返事でも、結構です。よろしければご回答下さい。

  • NN7.0でレイヤーの表示・非表示

    レイヤーの表示・非表示のスクリプトなんですが、 function OpenLayer() { //NNの場合 if(document.layers) { document.content_menu.visibility="visible"; } //IEの場合 else { content_menu.style.visibility="visible"; } } function CloseLayer() { //NNの場合 if(document.layers) { document.content_menu.visibility="hidden"; } //IEの場合 else { content_menu.style.visibility="hidden"; } } に書きました。 IE6.0では動作しますがNN7.0では何も起こりません。 どなたかどのように表記をすればいいのか教えてください。よろしくお願いします。

  • HTTPヘッダ

    社内ホームページでEXCELデータをダウンロードしてもらうページを作っているのですが、IEの場合、ブラウザ内でシートが開いてしまいます。 IEでEXCELデータにアクセスしてEXCELで開けるようにサーバ側で制御するにはどうしたらいいでしょうか。 インターネットで調べていると、「Content-Disposition ヘッダ」がどうとか書いてあるのですが意味がわかりません。 HTTPヘッダとは何で、どこをどの知識を使っていじれば良いですか?誰か教えてください。

  • NN7.1での日本語ファイル名の文字化けについて

    似たような問題はあったのですが、解決できないの質問させて下さい。 PHPで、 $fname = mb_convert_encoding($fname, "SJIS","EUC-JP"); header("Content-Type: application/x-msdownload"); header("Content-Disposition: fname=\"$fname\""); としてheaderを送り、ファイルダウンロードを行っているのですが、 NN7.1でダウンロードしようとするとファイル名が文字化けしてしまいます。 IEであれば問題なくダウンロードできるのですが…。 ネット検索したり、RFCを見たりはしたのですが解決できませんでした。 HTTP_USER_AGENTを調べてブラウザ別に対処することも考えていますが、 とにかくNNに対応できず困っております。 ご教授いただければ幸いです。よろしくお願い致します。

    • 締切済み
    • PHP
  • Windowsにデータを送りたい

    0S9.2です。 5Mくらいの画像とHTMLデータをWindowsに送ろうとしています。 Outlook以外で(ファイルが多いので 解除しても勝手に圧縮されてしまう) 簡単な方法はありますか? HOTMAILはダメでした。 いちおうIE,NNはあります。 LHAでは、上手く圧縮できませんでした。 なるべく安全(ちゃんと相手に届く)方法を とりたいのですが。 すみません、おねがいします。

    • ベストアンサー
    • Mac