なぜリンクをクリックすると自動的にGETメソッドになるのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
HTTP
は、ざっくり説明するとGETは「URL文字列でのアクセス」、POSTは「URL+データでのアクセス」という形になります。aタグで表現可能なのは「文字列」しかないので、GETでアクセスせざるを得ません。
以下はHTTPというものに関するちょっとした説明です
HTTPとはそもそもなんぞや?というところを勉強するとわかるようになるかもしれません。
例えばhttp://example.com
というURLにGETでメソッドでアクセスするとき、HTTPは以下のような情報をサーバに送ります(例)。
リクエスト
GET http://example.com HTTP/1.1
このリクエストを受け取ったサーバは、このような情報(例)を返します。
レスポンス
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT Content-Length: 88 Content-Type: text/html Connection: Closed <html> <body> <h1>Hello, World!</h1> </body> </html>
ブラウザというのは、このような文字のやり取りを行ったあと、受け取った情報を元に画面へ表示する役割を担っています。実際にブラウザに表示されている<html>
タグ以外にも、実はいろいろやりとりをしているのがHTTPという通信プロトコルです。で、このHTTPという通信プロトコルでは、GETでリクエストを送る場合、URLだけでアクセスすることになります。<form>
タグでmethodをPOSTとした時と、GETとした時で、URLがそのままなPOSTと、URLの後ろにformで入力した値がくっつくGETの違いはわかりますか?GETの場合、先述の通りURLしか渡せる情報がないため、URLにくっつけて送ってやろう、というのがGETです。
逆に言えば、URLしか情報が持てないaタグがGETになるのは必然なのです。
投稿2017/12/04 04:54
編集2017/12/04 04:55総合スコア9210
0
シンプルに行きます。
ブラウザ上でリンクをクリックした時に求められる動作はなんですか?
殆ど全てのケースでは新しいページに画面遷移したいから、HTMLが欲しいからリンクをクリックするわけですよね。
HTTP通信の世界では色々定義されていますが、
クライアントがサーバーに求める内容に応じてメソッドとして定義されています。
(サーバー上のデータというのは、より厳密にはURLに応じた一意に決まるリソースのことを指します)
- GET: サーバーからデータをダウンロードしたい
- POST: サーバーにデータを新規登録したい
- PUT: サーバー上のデータを変更したい
- PATCH: サーバー上のデータを変更したい
- DELETE: サーバー上のデータを消去したい
これの分類に照らし合わせると、HTMLファイルが欲しいという要求は「GET」に該当します。
従って、リンククリックにはGETが最もふさわしいのでGETが行われます。
投稿2017/12/04 05:25
総合スコア21384
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
ベストアンサー
要求ヘッダにpostの情報がのらないからではないでしょうか?
投稿2017/12/04 04:38
編集2017/12/04 04:38総合スコア117556
0
ブラウザのaタグ クリック時の動作がそうなっているから。
Javascriptで捻ればなんとでもなります。
蛇足ですが、GETはサーバまで届くとは限らず、途中に存在する
様々なキャッシュが返る可能性のある、あくまで「参照」を
目的にした要求で、ブラウザからデータを「送信」することを
目的とするPostとは根本的違います。
投稿2017/12/11 23:34
総合スコア70
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/04 04:57
2017/12/04 05:01
2017/12/04 05:06
2017/12/04 07:04