• ベストアンサー

URLの最大長に制限はある?

URL長は何バイトまで許容されているのでしょうか? クエリパラメータとして長い文字列を送信しようと言う場合の挙動について知りたいです。 ディレクトリの深さやファイル名の長さについての観点は気にしていません。 ・HTTPの仕様(?)としての制限の有無 ・Webサーバの仕様・設定による制限の有無 ・セキュリティソフトによる制限の有無 等の観点で、ご教示頂きたいと存じます。 識者の皆様よろしくお願いします!

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

  • ベストアンサー
回答No.1

識者ではありませんが... >・HTTPの仕様(?)としての制限の有無 プロトコルの仕様は、rfcを読めばわかりますよ。 日本語訳を掲載しておられる方もおいでですから、一度読んでおきましょう。 あと、一番いい加減な実装になってそう&バリエーションが凄くありそうな 「HTTP User Agent(いわゆるブラウザ)がハンドルできるURIの長さ」 について言及されてませんが、こちらは調べがついてるんでしょうか?

参考URL:
http://www.studyinghttp.net/rfc_ja/2616/sec3.html#sec3.2.1
cocona
質問者

お礼

ご提示頂いたURL、早速確認いたしました。 HTTP プロトコルでは、URI の長さにどんな制限も設けていない。(引用) こんなズバリ定義されていたとは...; RFCの1630(URI)、1738(URL)辺りを見て、載ってない(泣)と途方に暮れていたのですが、2616(HTTP/1.1)を調べねばならなかったのですね。 UAについては...何も考慮しておりませんでした。 (WinAPIのInternetOpenUrlを使用してVBからリクエストを投げる予定であります。) なるほど、ブラウザが解釈可能な長さ、というのも普通は気にした方がよさそうですね...留意します! mochiketsuさん、大変参考になるご回答、どうもありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CGIでGETで送信するパラメータの最大長が知りたいのです。

    CGIでGETで送信するパラメータの最大長が知りたいのです。 ブラウザ(クライアント)毎に違うのでしょうか、 それとも、CGIはPerlを使っているのですが、サーバー側の仕様になるのでしょうか? あと、index.cgi[ここからパラメータとして扱われる??? ?, &もパラメータサイズに含まれるのでしょうか? 結構長いパラメータをGETで送信しないといけなくて、たとえば携帯やPDA(ザウルスSL-C860)など大丈夫かなと心配しています。 POSTは無制限でしたよね? でも、今回は必ずGETでないといけませんので・・・

    • 締切済み
    • CGI
  • ■URLダイレクト入力の規制はできますか?

    ■URLダイレクト入力の規制はできますか? ■質問の背景 携帯での照会システムにおいて不正アクセスを防止するため、以下の対策を検討しています。  (1)お気に入り登録の制限  (2)リファラによるアクセス元URLの制限 (1)は実装済み、(2)も一部実装済み(入り口であるトップ画面のみ) ですが、ログイン後の各画面については、セッション情報で規制をかけているため、セッションが残っている場合は、URLダイレクト入力でその後の画面遷移ができてしまいます。 上記(セッション…)は自端末に閉じた話であること、且つURL情報にはパラメータがない(POST送信である)ことから、パラメータを改ざんして別情報を照会するといった不正アクセスはできないと考えておりますが、万全を期す観点から、URLダイレクト入力を規制するといった話が出ています。 ■質問内容  (1)URLダイレクト入力を規制する必要性についてのコメントをお願いします。  (2)(1)で必要であれば、その方式(java、htmlでの実装方法)をご教示願います。 以上、宜しくお願い致します。

  • HTTPリクエストにおいて送信できるHTTPヘッダ

    HTTPに明るいかたに質問です。 下記URLにHTTPヘッダーに含めることのできる文字はASCIIを拡張した8bitASCIIだと 記載があります。 参考URL http://www.studyinghttp.net/header#Utf8InParam このURLにはHTTPヘッダ、特にPOSTメソッドでリクエストを投げる際は、 パーセントエンコーディング(URLエンコードとは言わないのですね・・・。💦) をおこなって、拡張ASCIIの8bitで対応できる文字として符号化して送信するような記述があります。 たしかに、IEなどの特定のブラウザだとアンカータグのhref属性に日本語のパラメータをいれたリンク先をつくると 正しく送信できないときがあったような気もします。 もちろんHTTPの仕様がパーセントエンコーディングとなっている以上、それが正しいやりかたなのでしょうが、 考えればUTF-8なども8bit単位で符号されて 結果【あ】という文字は[¥xe3¥x81¥x82]という16進数のバイト列で表現できていますよね。 ということは、文字列を正しく符号化していえれば拡張ASCIIつまり8bitの範囲でおさめる事ができているのではとおもったのです。 パーセントエンコーディングも必要ないのではと思うのですが・・・。 上記に造詣の深い方、是非ご教授ください。 よろしくお願いします。

  • URLのパラメーラでURLエンコードした日本語があると そのページがHTTPエラー400で表示されません

    i今までFEDORA6で運用していたサイトをFEDORA8をセットアップして運用しようとしたらform内でPOSTで送信してる場合 項目に日本語が混ざってる場合や URLパラメータとしてURLエンコードした日本語が混ざってるとそのページがHTTP400正しくない要求で表示されません 助けてください。 ちなみに ASCIIコードのみだと 今までどおりに正常に開きます

  • パスワード制限について

    今度ホームページにパスワード制限をしたメンバーページを作ろうと思います。 そこでクッキーによるパスワード制限と.htaccess(BASIC認証)によるパスワード制限では、どちらが良いと思いますか? メンバーページでは、メール送信や掲示板の書き込みなどをしたいです。つまり出会い系みたいな感じです。それなのでメンバー毎のIDを得たいのです。 BASIC認証ではパスワードの認証は出来るのですが、ユーザー毎のIDを得ることは不可能?だと思いますし、クッキーだとセキュリティ上問題がありそうだし。パラメーターで各ページ事、.cgi?~で送るのも問題だし。 実際出会い系などで用いられるパスワード制限はどのようにやっているのでしょうか?出会い系ではなくとも、そのようなホームページを持っている方はどのようにしていますか?自分としては、パスワードはBASIC認証にして、IDはクッキーから得ようと考えています。 セキュリティーなどの件での投稿も待ってます。

    • ベストアンサー
    • Perl
  • アクセス制限

    どのカテゴリで質問するか悩みましたが、こちらで質問させていただきます。 現在、Linux RedHat8、Apache、PHP4の組合せで、ユーザー認証のシステムを作成しています。 この中で、ファイルのダウンロードを行わせるページがありますが、ログインしない限り、ダウンロードが行えない仕組みにしたいのですがうまく行きません。 ファイルのダウンロードページへは、"HTTP_REFERER"を使用すればアクセス制限をかける事が可能ですが、ブラウザのURLへファイルのアドレスを直に入力されたら、アクセスの制限を行えません。 もしかしたら、セキュリティのカテゴリで質問する内容かもしれませんが、PHPで作成していますので、こちらで質問させて頂きました。 どなたか分かる方、宜しくお願いします。

    • ベストアンサー
    • PHP
  • jacascriptでのPOST送信について

    初めまして。 今回お聞きしたい事は、jsで取得した別フレームの文字列を、URLのパラータに付け、 actionに指定したものをpostで送るというものです。 get送信の場合は文字数制限があるためpostで送りたいです。 frame1:main frame2:sub frame1からframe2のcgiへpost送信を行いたいです。 main側でボタンを押した時に、subに表示されているテキストエリアの文字列を取得し、 それをurl+="prm="+prm;の形でurlのパラメータに設定し、document.f1.action=url; としてpostで送信している。 のですが、prm変数のパラメータの量が多い為、エラーが発生してしまっているみたいです。 例) //別フレームから値をprmdataに格納 var prmdata = parent.out.document.inform.csvedit.value; //送信url生成 url += "prm1=" + prmdata; document.form.taget = sub; document.form.method = post; document.form.action = url; ※上記方法でパラメータ自体送信出来るのですが、 prmdataのパラメータの量が多いとエラーとなってしまいます。 そもそもurlにパラメータを付けpost送信することは可能なのでしょうか? どうにか回避したいと考えています。 どなたかご教授ください。 よろしくお願いします。

  • 呼び出した相手をチェックするには?

    webアプリから呼び出されるPHP側で、そのディレクトリ以外の ものから応答しないようにするためには、 if( strpos( $_SERVER[ 'HTTP_REFERER' ], "ここに同じURL" )!==0) exit; だけでよいものなのでしょうか? 実は危険と知りつつ、javascriptから、クエリーを発行したいのです。

  • SSL通信のURL暗号化について

    お世話になっています。 SSLの暗号化について質問させてください。 こういったことに、あまり詳しくないので的外れな質問であればご指摘をお願いします。 ブラウザからURLを直接指定し、ページへ遷移する場合そのURLが暗号化されているのか平文なのかを知りたいです。 例えば、 https://hoge.hoge.jp/login?id=AAAAA&pass=BBBBB というURLでアクセスした場合、そのURLを第3者に傍受され、クエリストリングである id=AAAAA pass=BBBBB という情報を読み取られてしまうことはあるのでしょうか? SSLでフォームデータを送信するようなセキュリティが確保されているかを知りたいです。 ご回答よろしくお願いします。

  • formによるパラメータ送信がうまくいきません

    こんばんは。 HTML初心者です。 formによるパラメータを送信しようと考えているのですが、 送信方法によってパラメータが異なってしまい、困っています・・・。 以下のようなformを使って、パラメータをpostしています。 <form name="form1" action="http://xxx/xxx/xxx" method="post"> <input type="text" name="text1"> <input type="submit" value="sousin" name="submit1"> </form> 送信してみたところ、送信方法によって、送るパラメータに差異があることに気が付きました。 ************************************************** 1.テキストに文字列を入れて、送信ボタン(sousin)を押す。 ->リクエストパラメータが、submit1=sousin と text1=文字列 になる。 2.テキストに文字を入れて、フォーカスがテキストにある状態で、Enterを押す。 -> リクエストパラメータが、text1=文字列 だけになる。 ************************************************** 1.と2.どちらの場合でも、 submit1=sousin と text1=文字列 を送りたいと考えています。 クエリストリングは使いたくないので、 onclickをつけてみたり、JavaScriptで少し考えてみましたが、 どうしてもうまくいきませんでした・・・。 2.のように、Enterを押したときでも、 submit1=sousinを送るようにするのはどうしたらよいでしょうか?? 宜しくお願い致します。

    • ベストアンサー
    • HTML
このQ&Aのポイント
  • プロジェクター(EB-W06)を利用していますが、PC Free機能でUSB機器を本機に接続して、保存されたファイルを投影したいと考えています。
  • avi 1.0(Motion JPEGのみ)の動画ファイルを再生するためには、mp4からのエンコードが必要です。
  • avi形式動画の変換ソフトを探しています。EPSON社製品を利用しているので、EPSON製品に対応している変換ソフトがあれば教えてください。
回答を見る