HTTPとは
HyperText Transfer Protocolの略。
HTMLなどのテキストファイルや、画像、コンテンツ等をやりとりする時のプロトコル(規約。分かりやすく言うと「決まりごと」)のことを意味します。
HTTPの基本動作
「クライアントからの要求(HTTPリクエスト)」と「サーバーからの応答(HTTPレスポンス)」が基本的な流れになります。
言葉よりも図を見てイメージして頂いた方が分かりやすいと思います。

GETメソッドとPOSTメソッドの違い
GETメソッド
-
サーバーからデータを取得する。
-
データベースに処理を加えない。
イメージとしてはSQLのSELECTに近いです。
ex. 検索するとき
(ググる時はデータの書き換えではなくデータの取得をしている)
- 閲覧履歴が残る
GETメソッドを使ってデータを送信する場合は「URL?パラメーター名=値」の形で送信されます。
試しにGETメソッドでフォームを送信してみます。
<h1>New User</h1>
<%= form_for @user ,method: :get do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.submit '送信' %>
<% end %>
nameフォームにtest1
emailフォームにtest1@test.comと入力してみます。
https://xxx.com/users?utf8=%E2%9C%93&user%5Bname%5D=test1&user%5Bemail%5D=test1%40test.com&commit=%E9%80%81%E4%BF%A1
URLにtest1とtest1@test.com(@は%で表記)が表示されていることが確認できます。
- ブックマーク(URLを登録すること)できる
「URL?パラメーター名=値」の形でURLをブックマークすることができるので、そのURLで検索した時の結果を表示させることができます。
POSTメソッド
-
サーバーにデータを登録する
-
データベースに処理を加える。
イメージとしてはSQLのINSERTやUPDATEに近いです。 -
閲覧履歴が残らない
POSTメソッドで送る場合はメッセージボディに情報が含まれていてURLには情報が表示されない。
POSTメソッドで先ほどGETメソッドで送ったのと同じデータを送信してみます。
https://xxx.com/users/5
URLに入力したデータではなくパスが表示されていることが確認できます。
- ブックマークできない
パラメーターがbodyに含まれており、URLに明記されていないためブックマークに登録することができない。
最後に
誤っている箇所や追記した方が良い点等ございましたら
編集リクエストやコメントの方でご指摘していただけると幸いです。