こんばんは。お世話になっております。
直接的なソースに関するものではありませんが、ある書籍で
「GETで渡す文字列は、長いと不具合が生じることがある云々」
「長くなる場合はPOSTで行いましょう云々」
などと書かれていましたが、やはり長くなる場合はPOSTで行うべきなのでしょうか?
また、そのGETかPOSTかの判断基準はどのようなところなのでしょうか?
ちなみに・・id=$id&no=$no と、検索する際、最大60ほどのキー?を渡したいと考えています。
何分、プログラムにおいて初心者の域から脱していない事もあり、この書籍の曖昧な表現に、POSTかGETかの基準に悩んでいるところから、皆さまのご意見を頂戴したく投函させていただきました。
お忙しい中恐縮ですが、宜しくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
GETで渡せる文字列の最大長はクライアントやサーバーの環境依存のようです。
たとえば、クライアント側でInternet Explorerを使う場合は、
http://support.microsoft.com/kb/208427/ja
に書かれているようにURL全体の長さが2083文字以内です。
WWWサーバーの環境にも依存するので、こちらも気にする必要があります。
また、
ftp://ftp.isi.edu/in-notes/rfc2616.txt
によると古いブラウザやサーバーでは255バイトに制限されていたので、気をつけるようにというような記述があります。現在の環境ではあまり関係ないかもしれませんが・・・
この辺りが長さの基準になるのではないでしょうか。
また、GETで渡す文字列はブラウザのURL欄に表示され、POSTの場合は表示されません。それが良いのか不味いのかは扱う内容次第なので、ケースバイケースです。
参考URL:http://support.microsoft.com/kb/208427/ja, ftp://ftp.isi.edu/in-notes/rfc2616.txt
supersonic様
はじめまして、こんばんは。ご丁寧なご説明を有難う御座います。
IEでの文字数の件、貴重な情報を有難う御座います。文字数を数えたら1100ほどでした。
supersonic様も仰るように、投函後、255バイトまで・・という記事を他でも見たので気になっていましたが、文字数#2様のご意見も含め、GETで渡すプログラムを組んでみたいと思います。
貴重なご意見ありがとう御座いました。
No.2
- 回答日時:
GETは2KBくらいが上限だったと思います。
POSTの場合は制限はありません(PHPの場合、post_max_sizeで制限されますが)。データ量以前の話として、GETはサーバの状態に変化を与えないもの(検索や商品情報表示などの参照系)、POSTは変化を与えるもの(会員登録・商品購入などの更新系)に使います。また、ログインなど、パスワードや個人情報などをクライアントからサーバに送るフォームでは、POSTを使います。GETの場合は、URL文字列に送ったデータが含まれるため、ブラウザの履歴やリファラーからその情報が流出する恐れがあるからです。
検索で使うのであれば、通常はGETが良いと思います。検索結果ページにリンクを張ったり、検索エンジンにヒットさせたりするのに都合が良いです。また、検索結果ページをユーザがブックマークしたり、ブラウザの「戻る」「進む」「リロード」での遷移がスムーズになります。ブラウザに、検索結果ページをキャッシュさせることもできます。
>検索する際、最大60ほどのキー?を渡したいと考えています。
そんなにキーがあるということは、一般消費者向けのシステムではないんでしょうか。あまり上記のようなことを考えなくて良い社内システムなどでは、「どちらでもよい」ということになるのかもしれません。
この回答への補足
supersonic様、fdsjaklfjas様へ
補足欄から失礼します。
お二方とも私にとって非常にありがたいご意見でしたが、残念ながらお二方に同じポイントを付ける事ができません。
心苦しいところではありますが、ご理解のほどお願い致します。
有難う御座いました。
fdsjaklfjas様
はじめまして、こんばんは。貴重なご意見を有難う御座います。
#1様のご意見も含め、バイト数での情報を有難う御座います。
今回、検索プログラムを作成する際、気になっての質問だったので皆様のご意見を頂戴し、随分と安心できました。
ご親切なご意見をありがとう御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS GETをPOSTに変更したところ 送信 不能です。 1 2022/04/10 17:31
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- TOEFL・TOEIC・英語検定 get に「入る」という意味ありますか?辞書に載っていません 4 2022/06/05 06:03
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- 英語 どのような場合に、予定や進行していない動詞を進行形にするかについて 2 2022/03/22 22:31
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- 分譲マンション 分譲マンションの管理組合・理事長です。この難しい件はどうすれば良いでしょうか? 9 2022/07/20 01:23
- 中途・キャリア 転職活動における最終面接につきまして 2 2023/05/31 17:16
- 英語 "In a considerable effect to those..." の In は正しいか? 3 2023/06/22 07:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セレクトで都道府県から市区町...
-
IEでalertのみを無効にする方法...
-
PHPとJavaとC#の違い
-
仮アップ?
-
コメント削除/圧縮/難読化
-
PowerPointで時計表示
-
JSPの処理の途中で、JavaScript...
-
VB.NET2003 テキストボックスに...
-
csvファイルを読み込み、該当項...
-
confirm()をはい/いいえ に切...
-
VBA ステータスバー DoEvents
-
contenteditableで編集した内容...
-
「終了していない文字列型の定...
-
innerHTMLなどの反映タイミング
-
Javascript でログインできない...
-
リクエスト結果が一瞬しか表示...
-
エクセル2010のvbaについて
-
フォルダを自動で開く
-
関数を最終行までコピー
-
JavaScriptでテキス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptをつかって売上管理
-
Node.jsのWebプログラム(javasc...
-
jqGridの入力内容をサーバに保...
-
外部リンクのクリック数を表示...
-
JavaScriptを使用して、クライ...
-
ASPによるEXCELファイルの操作
-
CSJSとSSJSの違い
-
IEでalertのみを無効にする方法...
-
3次方程式の実数解をニュートン...
-
JAVA SCRIPTとは、...
-
プルダウンリストを作りMySQLか...
-
クリックされたか判断するには?
-
ランキングサイトの構築って予...
-
独自の検索エンジンを作るには!?
-
PHPとjavascriptで共通なエンコ...
-
ASPでエクセルの起動
-
PDFにリンク組み込み
-
リアルタイム表示ホームページ...
-
Session切れ前にWarningメッセージ
-
クリックイベントに関して
おすすめ情報