CGIで動的にをHTMLページを生成し、クライアントへのレスポンスを返す場合、
HTTPヘッダ情報にContent-lengthの項目を設定しなかったら、
ブラウザによっては正常に表示されなかったり、不具合が起こることが
あるのでしょうか?

OS、ブラウザ種別・バージョンごとに、Content-lengthが設定されていなくても
正常に表示される/されないの情報をご存知の方がいらっしゃいましたら
教えていただけないでしょうか?

また、HTTP/1.1ではContent-lengthの記述が必須であると聞いたような気が
するのですが、クライアントにHTMLのレスポンスを返すだけでも
Content-length設定は必須なのでしょうか?

以上、ご存知の方いらっしゃいましたらよろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

 IEとかNNなんかそうですが、下のところに読み込みインジケーターがありますよね。


 青い奴がどんどん溜まっていく奴。
 ブラウザによってはあれが正常作動してくれないとマズいのとかあるんです。
 そのための Content-length です。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QOpen officeか Apache OpenOfficeか LibreOfficeか

こんばんは
Open officeを使っています。最近知ったのですがOpen office 作成プロジェクトは2011年に解散し、後継としてApache OpenOffice と LibreOffice ができたそうです。
このままOpen office を使っていたほうがよいのか、それとも後継のどちらかを使った方がよいのか迷っています。
皆さんはどの様にお考えですか?

Aベストアンサー

仰る通り、プロジェクトが解散しています
その為、その後に派生したアプリで報告・修正されているセキュリティー上の欠陥が OOo にもあるのかどうかすら分からない状況です
よって、私は派生アプリへの移行を勧めます
何らかの金銭的コストがかかるわけでも有りませんし、移行後の学習コストも有りませんので

そうなると、Apacche Office, LibreOffice のどちらに移行するのか? が問題になりますが、前者については、
> OpenOffice(Apache OpenOffice)が開発者不足のためプロジェクト終了へ
> http://gigazine.net/news/20160905-openoffice-shut-down/
というニュースが出るほど、後者に比べて開発が停滞気味です
(結局、その後プロジェクトの存続は決まりましたが…)
この状況なので、セキュリティー上の問題発見から、その修正版の公開までが時間がかかっている傾向が有ります

以上のことから、私は LibreOffice への移行を勧めます

昨年1年間の両者の動きとして
http://gihyo.jp/lifestyle/column/newyear/2017/libo-aoo-prospect

仰る通り、プロジェクトが解散しています
その為、その後に派生したアプリで報告・修正されているセキュリティー上の欠陥が OOo にもあるのかどうかすら分からない状況です
よって、私は派生アプリへの移行を勧めます
何らかの金銭的コストがかかるわけでも有りませんし、移行後の学習コストも有りませんので

そうなると、Apacche Office, LibreOffice のどちらに移行するのか? が問題になりますが、前者については、
> OpenOffice(Apache OpenOffice)が開発者不足のためプロジェクト終了へ
> http://gigazine.ne...続きを読む

QCGIで内部処理を待たずにレスポンスを返す方法

■質問
CGIで内部処理を待たずにレスポンスを返す方法について教示願います。
(関連サイトを調べていて、近しいものはあったのですが、なかなか今回の問題の原因と対処に結びつく有効な手がかりがない、苦慮しています。)

■詳細
<動作環境>
 (1)画面(Java)→(2)Web(Apache)HTTPリクエスト→(3)CGI(C言語)
 (3)→(2)を介して(1)へHTTPレスポンスを送信

この環境下で、(3)の中で(3)’処理((2)へのレスポンスとは非同期で
別処理(DBへ登録する処理)言語:cshをCの中からシステムコール。
cshの中でperl処理をキックし、DB更新)を今回追加しました。

(3)’を待たずに(1)へのHTTPレスポンスを返却したいのですが、
サーバログ((1)、(2))をみると、返却のタイムスタンプを見ると、
(3)’が完了した後に返却されているようです。

方式的に(3)の中でfolkを使用し、子プロセス化することで
親は子の処理((3)’)を待たずに(2)にレスポンスを返却可能とみておりましたが、そもそもCGI(C言語)ではできないものなのでしょうか?
→C(親処理)の中にデバックを仕掛けたところ、親の終了後に子が動いているように見えています。

■ソース(概要)※詳細(原本抜粋)が必要な場合は申しつけください。
 IF文で定義
 (1)forkで子の場合、
   execlでcshを実行(cshには親でもらった引数を設定)
 (2)親の場合、
  デバックログファイルをクローズし、処理終了。

■補足(その他気になっている点)
 ・上記ソースでは、(1)の中では、親で使うログファイル出力
  のcloseを行わず、処理終了していますが、問題ないか?
 ・同(2)のとき、perlCGIでは、close(stdout);を明示しないと
  HTTPレスポンスが返却されない(子の終了を待ってしまう)
  旨、サイトの情報に記載がありましたが、C CGIでも同様に
  何かしらの明示をしないと、待たされるのか?

以上です。

■質問
CGIで内部処理を待たずにレスポンスを返す方法について教示願います。
(関連サイトを調べていて、近しいものはあったのですが、なかなか今回の問題の原因と対処に結びつく有効な手がかりがない、苦慮しています。)

■詳細
<動作環境>
 (1)画面(Java)→(2)Web(Apache)HTTPリクエスト→(3)CGI(C言語)
 (3)→(2)を介して(1)へHTTPレスポンスを送信

この環境下で、(3)の中で(3)’処理((2)へのレスポンスとは非同期で
別処理(DBへ登録する処理)言語:cshをCの中からシステムコール。
...続きを読む

Aベストアンサー

子プロセスがレスポンスを返して、親より先に死ぬようにしたほうがよいと思います。
また、レスポンスを返さないほうのプロセスは先にSTDOUTをcloseした方が良いでしょう。

以下perlですが、やることはほぼ同じだと思います。(半角スペースを全角にしてます。)
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use CGI::Pretty;

if ( my $pid = fork ) {

  # Parent
  # Close STDOUT
  close STDOUT;

  # Do heavy work
  sleep 10;
  my $file = '/tmp/tmp3.txt';
  open my $fh, '>', $file or die "$!:$file";
  print $fh "Hello CGI. I'm parent\n";
  close $fh or die "$!:$file";

  # Wait to finish child for safe
  wait;
}
elsif ( defined $pid ) {

  # Child
  # HTTP Response
  my $q = CGI->new();
  print $q->header( -charset => 'UTF-8' );
  print $q->start_html(
    -lang => 'ja',
    -title => ' T I T L E '
  );
  print $q->p("Hello CGI. I'm child");
  print $q->end_html;
}

子プロセスがレスポンスを返して、親より先に死ぬようにしたほうがよいと思います。
また、レスポンスを返さないほうのプロセスは先にSTDOUTをcloseした方が良いでしょう。

以下perlですが、やることはほぼ同じだと思います。(半角スペースを全角にしてます。)
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use CGI::Pretty;

if ( my $pid = fork ) {

  # Parent
  # Close STDOUT
  close STDOUT;

  # Do heavy work
  s...続きを読む

QApache OpenOfficeで書式設定の保存

詳しい方、アドバイスをお願いします。

Apache OpenOffice で、文章を作成する前に書式設定をしますが、たとえば、縦書きとか、文字数と行数とか、書体とかですが、そういう設定を「保存」して、毎回設定しなおさなくてもい方法があったら、教えてください。

よろしくお願いいたします。

Aベストアンサー

ご希望のように書式設定した白紙の文書を「名前を付けて保存」で、
「ファイルの種類」を「ODF文書ドキュメントテンプレート(.ott)」に指定し、
「マイ テンプレート縦書き」のような探しやすい「ファイル名」を付けて、
分かりやすい場所に保存します。

テンプレートを使用するには、
テンプレートファイルをダブルクリックまたは右クリックなどから「開く」などで開き、文書を作成します。

保存する時は、普通に「ファイルの種類」を「ODF文書ドキュメント(.odt)」として保存しますので、
自作のテンプレートは書き換えられることなく何時も同じ状態で始めることが出来ます。

上記の名称は「Libre OpenOffice Writer」ですので、Apache OpenOfficeとは違っているかも知れません。

QPHP4版CGIでクライアントブラウザに

「Hellow World!」

を表示させるには
FedoraCoreサーバ(フルインストール,デフォルト)をどのように設定し
どういう内容のファイルを作り
どこに配置すればいいのでしょうか?
PHPといえばSSIでCGIではないと思うのですが大丈夫でしょうか?

Aベストアンサー

はじめまして。

<?php
print ("Hello world");
?>
と言うファイルを、~.php というファイル名で作成し、
httpd の DocumentRoot に設定されている場所においてください。

なお、PHPは、SSIとは無関係です。(多分)
CGIとして使える言語のひとつである場合はありますが。(ってか、結構多い?)

QApacheのOpenOfficeでDLして、パワーポイントで提供されている資料を開きたいです

タイトルの件ですがお分かりになる方はいらっしゃいますか。

OpenOfficeのもので資料を作成することはできるとして、
そのあと、修正事項として、企業様からPPTの拡張子がついた資料を頂きました。
これを開くにはどうしたらよいでしょうか。

どうぞ宜しくお願い致します。

Aベストアンサー

OpenOfficeのインストールが完了したら、「.ppt」ファイルを右クリックして「プロパティ」を開き、「プログラム」の「変更」をクリック・・・って書いてます

http://www.jyoukyoutools.com/?p=1755

QHTTPDの AN HTTPサービス開始不可 なぜ?

困ってますのでどなたかおしえてください。
自宅サーバーをWindows Meにて立ち上げる最中なのですが、AN HTTP Server Home Pageにてhttpd Ver 1.42nを取得。httpdを“オプション一般"で開くと本来あるはずの“サービス”(“ログ”のすぐ隣)がないのでAN HTTPサービスを開始できなくて困っています。もう一台のXPでは問題ないのに・・Meはほかにも設定がいるのでしょうか?それとも何か私が見逃していることがあるのでしょうか?よろしくお願いします。

Aベストアンサー

自分のIPアドレスを調べて、
htp://IPアドレス/
で確認。

>HTTPサーバーとして動作してなくも、そのままアドレスを入力したら表示されるため
これは、
http://127.0.0.1/
にアクセスすれば確認できるかと。
(hはあえて全角にしてあります)

QApache Open Office 4.0.1

 現在バージョン4.1.1(最新と思われます)を使っていますが、Impressで思わしくないことがあるので、旧バージョンの4.0.1と入れ替えてみようかと思うのです。4.0.1をダウンロードできますか。
 Impressでの思わしくない点とは、スライドに音声を貼り付けてCD-RWに焼くと特定の音声が聞こえなくなる現象です。4.0.1ですと問題ありません。ハード(Win7)の問題かもしれませんが。

Aベストアンサー

こちらからダウンロード可能です
http://www.openoffice.org/download/index.html

4.1.1のところのプルダウンメニューに4.0.1も有り

Qhttpとhttps間で商品データのcsvファイルを共有する方法

始めまして
私は、cahma netさんのcahma cargo「http://chama.ne.jp/download/cargo/index.htm」を使用させてもらっているのですが
httpに配置した「商品データーのcsvファイル」をhttpsに配置したcgiから読み込みたいのですがどうもうまくいきません。パーミッションの問題なのでしょうか?私の借りてるサーバーでは707・777等は、エラーを返されます。それともパーミッション以外に原因などはあるのでしょうか?どなたかお詳しい方教えて下さい!お願いします。

Aベストアンサー

絶対パスで一番身近なのはPerlのパスだと思います。
CGIの先頭行に

#!/usr/local/bin/perl

とか、書きますよね。この場合、

/usr/local/bin/perl

がPerlへの絶対パスです。
「#!」は宣言みたいなもので、スクリプト内の先行頭で使うだけのものなので混同しないように気を付けてください。
絶対パスというのは / から必ず始まります。
ほとんどのホスティングというのはFTPでログインしたディレクトリより上位階層があるのは先に述べたとおりです。
業者さんに問い合わせるのが早いと思いますが、以下のようなCGIでも調べる事が可能です。

#!/usr/local/bin/perl
print "Content-Type: text/html\n\n";
print $ENV{'SCRIPT_FILENAME'};

適当な名前で保存して(path.cgiとか)実行してみてください。
このCGIの絶対パスが表示されると思います。

下で相対パスの事を書きましたが、
CGIでのファイルの参照は相対でも絶対でもどちらでも構いません。

絶対パスで一番身近なのはPerlのパスだと思います。
CGIの先頭行に

#!/usr/local/bin/perl

とか、書きますよね。この場合、

/usr/local/bin/perl

がPerlへの絶対パスです。
「#!」は宣言みたいなもので、スクリプト内の先行頭で使うだけのものなので混同しないように気を付けてください。
絶対パスというのは / から必ず始まります。
ほとんどのホスティングというのはFTPでログインしたディレクトリより上位階層があるのは先に述べたとおりです。
業者さんに問い合わせるのが早いと思いますが、...続きを読む

QOpenOfficeを導入したら不具合発生

Apache OpenOffice 3.4.0 日本語版を導入したら、Wordの保存文書がすべて OpenOffice に変わってしまい、OpenOfficeのソフトを削除しても、元に戻りません。
私の使い方が悪いのでしょうか?
もしも、そうでないとしたらとんでもないソフトです。
この不具合の対処の仕方が解る方がいましたら教えてください。

Aベストアンサー

インストール時にdocファイルの関連付けを行うように
指示してインストールしたんじゃないんですか?

関連付けを設定し直せばWordで開けますよ。
右クリックしてプログラムで開く、みたいなメニューが
あって、この種類のファイルは常にこのプログラムで開く
みたいなチェックをつけてWordを選択して開けばいいです。

Qcontent-dispositionによるファイル名の指定について

CGIで動的にCSVファイルを作成し、ダウンロードできるようなものを作成しています。
httpヘッダのcontent-dispositionでファイル名を指定しているのですが、 NetScape7.01ではファイル名の先後に勝手に.CGIがついてしまいます。
何か対処方はないのでしょうか?

Aベストアンサー

HTTP/1.1 200 OK
などのヘッダまでCGIから出力しているということですか?

だとすればNPHスクリプトですね?
ならばConnectionヘッダはKeep-Aliveではなくcloseで
いいと思います。


Content-Disposition: attachment; filename="a.csv"
Content-Type: application/download; name="a.csv"
この2ヘッダを出力しても回避できない現象だとすると
ブラウザ特有の挙動のようですね?

わたしの知る最終手段として、ブラウザをダマす方法が
あります。以下のような感じで拡張パスを使う方法ですが
うまくダマせるかどうかはやってみないとわかりません。
<form method="post" action="download.cgi/a.csv">


これとは別に、素直にa.csvというファイルを書き出して
メタタグで呼び出すようなカラクリも使えるかとは思いますが・・・。


人気Q&Aランキング