teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文章誤りを修正

2018/02/06 13:50

投稿

zigutabi
zigutabi

スコア57

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  getとpostはhtttp通信におけるメソッドであって、役割が全く異なります。
2
2
  getは必要な情報をURLに記載することで情報を受け渡すものであり、postはヘッダーに情報を追記することで情報を渡します。
3
3
  前者は情報量をURLだけに絞ることで、早く処理を行うとともに、同じURLを叩いたら同じ動的情報を取得することが可能ですが、文字数制限があるため多くの情報を送信することができません。
4
- また、最近のコーディング規約ではパスワードはhash化してから送信を行います。つまり、ブラウザ上で入力した値と送信される値が異なり、DBに登録されるのはhash化されたパスワードになります。hash化されたパスワードの正式な値を知る方法はソースコード上で復元される時のみなので、見られたからと言ってすぐに影響はでません。
5
- あくまでも高速処理を行う必要があるためgetメソッドを用いることがあり、それ以外の時はpostメソッドで送信するのが慣習です。
4
+ またパスワードは送信された後、ハッシュ化されて DB に保存されます。ブラウザ上で入力した値とDBに保存される値が異なり、DBに登録されるのはhash化されたパスワードになります。hash化されたパスワードの正式な値を知る方法はソースコード上で復元される時のみなので、見られたからと言ってすぐに影響はでません。つまり、送信されたパスワードから対応するDBのレコードを探しても、どれがそれに該当するのかわからないようになっております。
5
+ あくまでも高速処理や大規模データ処理等、getメソッドである必要がある時のみgetメソッドを用いるのであり、それ以外の時はpostメソッドで送信するのが慣習です。
6
6
 
7
7
  余談ですが、知人と話している時、知人の友人がガスコンロの上に衣服を干す人がいるという話を聞きました。知人の友人の言い分はガスの元栓閉めているから問題ないとのことでしたが、知人はもの凄く違和感を抱いたようです。いくら物理的に発火しないといっても、発火物の上に可燃物の衣服を置くのは多くの人に取って不快感を与えます。それと同じように、いくらセキュリティを強化してあるからと言って、getメソッドでパスワードを送信しようとするのは、多くのプログラマーに取って違和感を与えます。
8
8