出典:魁!!男塾
こんにちは、Nanayakuです。
今回は、HTTPについて解説していきます。
HTTP(Hypertext Transfer Protocol)とは
HTTPには、2つの動作があります。
リクエスト・・・クライアントがサーバーにURLを要求(検索など)
形式)GET、POST、PUT、PATCH、DELETE
レスポンス・・・クライアントの要求に対してのサーバーの返答
形式)html、xml、jon、css、os、image
HTTPはこの2つがセットになっています。
開発者はリクエスト、レスポンスの形式を自由に決められます。
ただし、1リクエスト・1レスポンスに対して1つの形式しか指定できません。
HTTPはステートレス(state less)で、これは状態がないことを表しています。
つまり、1つのリクエストとレスポンスは独立しているのです。
=>前の情報がない為、ログイン状態を維持できません
それを解決するのがクッキーです。
Cookie(クッキー)
クライアントのパソコンのブラウザ内にあるテキストフォルダの事です。
このファイル内には、URL・ID・PW等があり、一致したURLのリクエストに追加でデータを送信しています。
これにより、ログイン状態を維持できます。
しかし、これにはセキュリティに問題があり、暗号化されていないデータをクライアント側のパソコンに保存するため、そのデータを盗まれる可能性が高いです。
これを解決したのがセッションです。
session(セッション)
クライアントのパソコンではなく、サーバーにデータを保存します。
セッションIDで管理し、クライアントはこのセッションIDを格納したクッキーを受け取ります。
クライアントは、セッションIDを格納したクッキーを追加してリクエストを送ります。
これにより、データを盗まれるリスクを下げられます。
例)
銀行や病院の受付・・・番号札で呼ばれる(住所氏名で呼ばれると個人情報がみんなにバレてしまいます)
HTTPメソッドについて
GET・・・リソースの取得(検索)
POST・・・リソースの作成(入力フォーム。ユーザー登録など)
=>データを隠して送信できます
PUT・・・リソースの作成/置き換え(データのアップロード。前のデータは削除)
PATCH・・・リソースの更新(一部のデータの変更。パスワードなど)
DELETE・・・リソースの削除
レスポンスで何を返すかちゃんと考えないと不具合が起きてしまうので、メソッドの選択は大切です。
railsを扱うときは、ちゃんと復習しなければなりません。
↓railsでエラーが出たら確認↓
ルーティング
どこのURLにリクエストが来たとき、どこが処理を担当して、何をレスポンスするか決めることです。
railsのroutes.rbの所です。
最後に
備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。