分かりやすくHTTPやCookieなどの機能を解説していきます。
目次
HTTP(Hypertext Transfer Protocol)とは
HTTPとは、ユーザーからサーバーへの要求とその要求に対するサーバーからの返答の2つのことです。
ユーザーがサーバーにURLを要求(検索など)をリクエストと言います。
このリクエストには形式があり、GET、POST、PUT、PATCH、DELETEの5種類があります。
クライアントのURLの要求に対してのサーバーの返答をレスポンスと言います。
この返信の形式は、ユーザーの要求によって変わり、html、xml、jon、css、os、imageなどの種類があります。
HTTPは、リクエストとレスポンスがセットになっており、開発者はリクエスト・レスポンスの形式を自由に決められます。
ただし、1リクエスト・1レスポンスに対して1つの形式しか指定できず、前のHTTPの情報を保持できません。
この情報を保持できないことをステートレス(state less)と言います。
つまり、1つのリクエストとレスポンスは独立しており、ログイン状態を維持できません。
Cookie(クッキー)
Cookieとは、ユーザーのパソコンのブラウザ内にあるテキストフォルダのことです。
このフォルダ内には、URLやユーザーID・パスワード等が記録されてあり、一致したURLのリクエストに追加でデータを送信しています。
これにより、ログイン状態を維持できます。
しかし、Cookieにはセキュリティに問題があり、暗号化されていないデータをクライアント側のパソコンに保存しているため、そのデータを盗まれる可能性が高いです。
Session(セッション)
Sessionは、クライアントのパソコンではなく、ユーザー情報をサーバーに保存します。
ユーザー情報の保存場所をセッションIDで管理し、ユーザーはこのセッションIDを格納したCookieを受け取ります。
ユーザーは、リクエストにセッションIDを格納したクッキーを追加して送ります。
これにより、データを盗まれるリスクを下げられます。
HTTPメソッドについて
HTTPのメソッド(処理の内容)について説明します。
GET | データの取得
例:URLの検索・データのダウンロードなど |
POST | データの作成(データ内容を隠して送信)
例:入力フォームやユーザー登録など |
PUT | データの作成/置き換え
例:データのアップデート(前のデータは削除) |
PATCH | データの更新(一部のデータを変更)
例:パスワードの再設定など |
DELETE | データの削除
例:アカウントの削除や退会処理など |
開発中にエラーが発生したらこちらのサイトを参考にしてください。
ルーティング
ルーティングとは、どこのURLにリクエストが来たとき、どこが処理して、何をレスポンスするか決めることです。
簡単に例えると、電車の分岐器の分岐が多いバージョンのようなものです。
ルーティングが正しく設定されていないと、データは行き場をなくしエラーになります。
最後に
HTTPにはデータを保持する機能がないため、cookieやsessionでログイン機能など実装しています。
この知識を理解していないと、実際にシステムを開発できません。
実際の開発やポートフォリオを作成するときは、ちゃんと復習しておきましょう。
実際に私もプログラミングスクールに通ってエンジニアになりました。
興味がある方は、こちらの記事をご覧ください。