Doiya’s blog

日々の進捗を書く雑記ブログ(メインはエンジニアやプログラミング関連)

HTTPやCookieやSessionの話

ネットワークの話

OSI参照モデル

ex 手紙のやり取り

・どんな手段で運ぶ?(1:物理層、2:データリンク層)

・どこに運ぶ?(3:ネットワーク層) IPアドレス(インターネットにおける住所)

・何号室?(4:トランスポート層)

・手紙の内容 プロトコル(お約束)

デフォルトゲートウェイ 設定するとパソコンはデフォルトゲートウェイに              データを投げる。

3 DNS(ドメイン) 

①IPアドレスをDNSサーバーに問い合わせ
②IPアドレスを教えてくれる。
③IPアドレスを使う。
④インターネットにアクセス
(ブラウザの裏でこのようなことをやっている。)

HTTPの仕組み

exリクエストメソッド:POST (HTTPリクエストヘッダーとHTTPリクエストボディのセット)

exレスポンスメソッド:ステータスコード:200 (HTTPレスポンスヘッダーとHTTPレスポンスボディのセット)

HTTPリクエストメソッド

GET データ習得                                             
POST データ送信・データ作成 
PUT データ更新                                  
PATCH データ一部更新                      
DELETE データ削除                            
HEAD ヘッドのみリクエスト             
リクエストボディ ○ POST,PUT,PATCH  △ DELETE ✖️ GET,HEAD

レスポンスボディ ○ GET,POST,PATCH  △ DELETE ✖️ PUT,HEAD

HTTPレスポンスメソッド

200 リクエスト成功
204 レスポンスなしでリクエスト成功
301  URL変更
302 URL一時的に変更
(300番台はリダイレクトの意味がある。)
403 アクセス権なし
404 リソースなし
500 サーバー側で処理できないエラー
502  サーバー通信エラー
503サーバーが処理できない。(Webサーバーは反応するけど、Rails側は反応しない。)
504  レスポンスのタイムアウト

Cookie

CookieとはWebブラウザに任意の文字情報を保存したり、その情報をサーバー側に送信する仕組み。

・HTTPはステートレス(前回のことを覚えていない。)

・上記のを防ぐためにCookieを使用する。(ドメイン毎にCookieがある。)

Cookieは内側から見れるため、個人情報などの重要な情報は簡単に見れて盗まれる可能性があるため保存しない。  (ex メールアドレスやパスワード)

Cookieはブラウザ側に保存するもの。

Session

1 サーバーにリクエスト(1回目)
2 セッションにデータを作成。ここでセッションIDが作られる。
3 CookieにセッションIDを保存。
4 ブラウザにレスポンス
(Sessionはサーバー側に保持するもの。)
5  サーバーにリクエスト(2回目) //この際、Cookieの情報を含めて送信
6ブラウザにレスポンス

上記の流れで他のページにアクセスする度にクッキーをサーバーに送っている。また情報漏洩を防いでいる。