- postメソッドとGETメソッドの違い
- postについてわからない
- getがわからない
このような方に向けて記事をかきます。この記事読めば、getとpostの違いについて概要を理解ができます。
結論としては、getとpostはデータ送信の規約のことで。SEO対策などの目的でURLにパラメータをつけた状態のリンクがget、フォームなど入力内容は隠したい場合はpostでデータを送りURLを作るという感じです。
なぜgetとpostメソッドがあるのか?
そもそもなぜ、getとpostがあるのでしょうか?
実はユーザーの目には見えにくいのですが、インターネットにおけるデータや通信のやり取りには、約束事があります。
理由としては、約束ごとがあった方が、抜け漏れがなくなりアクセスがスムーズだからです。
例えば、郵便はがきだと、郵便番号と住所・宛名と自分の名前と郵便番号と住所を入れる欄がありますよね。
なぜこれ、あると思いますか?
これを入れないとはがきを届けられないからです。これが規約です。
htmlのやり取りをする際に、この規約の一つにgetとpostがあります。
データの通信方法の中身ですね。昔のやり取りの流れで、決め事をした方がスムーズなので決め事をしましょう。その中でできたルールだ、とざっくり理解していればOKです。
ボクはコンサル会社でWEBページ制作に携わってますが、意外とgetとpostを理解できてないディレクターいるんですよね。わかってないと基礎的なとこなので恥ずかしいです。あなたがエンジニアであれば、エンジニアの立場からも軽く教えてあげても良いかもしれません。
postとgetの具体的な内容
では具体的な内容に入っていきましょう。
getの実態としては、URLの末尾にパラメーターがつきます。postに関してはつきません。
get・・・URLを通じて値を渡す
post・・URLには見せず値を渡す
実装の仕方としては、formタグのmethod属性に、getかpostを指定するだけです。属性は、タグの設定の様なものです。
なぜgetとpostの使い分けが必要なのか?
目的もなくpostやgetだと言われてもよくわからなくないですか?
それぞれの目的にメリットについて把握をして、使い分けるようにしましょう。
postで、URLにパラメータをつけることなく内容が見えない形でURLを作る目的は、パラメータを見られたらまずい時などに使います。
主にフォームです。住所や名前、電話番号などが抜き取られたらまずいですからね。パラメータにつけるのではなくすことて、データが抜き取られる心配がなくなりますからね。
さて、次に出て来る疑問です。
getっている?
postに統一して基本まとめてデータは隠してしまえばいいんじゃないか?そう思いませんか?
getを使う理由大きな理由の1つとしては、SEO対策です。
getについては、Googleにインデックスさせたい場合にgetメソッドを使うようなケースが多いです。
例えば通販サイトや不動産サイトなどの検索結果ページなどです。パラメータを除いたURLは一緒のケースが多いです。
また現場においての使い方としては、動的なページ、類似したページ構成で中身が違う場合は、検索結果ページにgetで値を渡してページを出し分けるなどがあります。
パラメータがないと1つのページと認識されてしまうため、検索結果のページに対してインデックスがされにくい、SEO効果としてわかりにくい性質があります。
一方でパラメータをつけてインデックスさせることで、検索結果に対して表示をさせるインデックスができる形になるので、有効です。
まとめ
いかがでしたでしょうか。
getとpostとの違いについて説明しました。
わりと、意義や目的の部分って調べてもわからない部分があるので、記載しました。
htmlのリクエストの大事な部分なので、ざっくりでもいいので理解する様にしましょう。
getはパラメータという形で、値をURL経由で渡す。SEO対策や、類似したページで動的にリンクを作りたい場合などに使う。postはセキュリティを考慮し、URLには入れない。
こんな感じです!