• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:続Gecko エンジンでの Location ヘッダについて)

GeckoエンジンでのLocationヘッダについて

このQ&Aのポイント
  • セッションの管理とGeckoエンジンでのLocationヘッダについて説明します。
  • CGIリクエストでCookieを使わずにセッションIDを送信する方法について質問しています。
  • Geckoエンジンではセッションが切れた時やセッションファイルを削除した時におかしな動作をする問題があります。

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

直接の回答ではありませんが、 HTTPプロトコルでの「Location:」ヘッダは、規格上は絶対URLを指定することになっています。相対では指定できません。 http://www.studyinghttp.net/rfc_ja/rfc2616#Sec14.30 実際には相対URLでもたいていの場合うまく動作するようですが、 規格外のデータを受け取った時のブラウザの挙動は当てにするべきでないと思います。 まずは絶対URLを返すようにしてみてはどうでしょうか?

pick52
質問者

お礼

今更ですが上手く解決できないので別の方法で対応することにしました。 お返事ありがとうございました。

pick52
質問者

補足

ありがとうございます。 > HTTPプロトコルでの「Location:」ヘッダは、規格上は絶対URLを > 指定することになっています。相対では指定できません。 > ​http://www.studyinghttp.net/rfc_ja/rfc2616#Sec14.30​ > 実際には相対URLでもたいていの場合うまく動作するようですが、 > 規格外のデータを受け取った時のブラウザの挙動は当てに > するべきでないと思います。 > まずは絶対URLを返すようにしてみてはどうでしょうか? 知っていたのですが、とりあえず基本的なブラウザではどれでも 相対パスで動作していたので問題ないかなと思ってやっていました。 やはり、絶対パスでやった方がいいんでしょうかね。 http://www.studyinghttp.net/header によると Content-Location の方は相対パスも受け付けるみたい なんですけど Location はなんで絶対パスなんでしょうか。 で、ここでいう絶対パスって完全なURLなのか / から始めていいのかも 分からなくて両方とも試してみましたがやはり変わらないようです。 print "Location: $ENV{'SCRIPT_NAME'}?CGISESSID=$id\n\n"; print "Location: http://$ENV{'HTTP_HOST'}$ENV{'SCRIPT_NAME'}?CGISESSID=$id\n\n";

関連するQ&A

専門家に質問してみよう