図解(?)通信アーキテクチャ入門 その3
ぞす!げんきちです!\\\\٩( 'ω' )و ////
「いや、誰だよ」って方は、下記リンクを見てやってください。
目次〜
- 全体像
- HTTPとは
- 次回予告
前回、前々回の続きです!
全体像
HTTPとは
WEBページやページ内で必要なCSS, JavaScript、画像などのファイルをWEBサーバにリクエストするためのフォーマットのこと。
HTTPの仕組み
ターミナルで、HTTPリクエストを行い、HTTPレスポンスを取得。
結果です。
行頭が「*」 =>SSL通信など。
行頭が「>」=>HTTPリクエスト。
行頭が「<」=>HTTPレスポンス。
HTTPリクエストの構成
- リクエスト行
- リクエスト・ヘッダ
- ボディ部
リクエスト行とは
HTTPメソッド 、 URI 、 HTTPバージョン で構成される行。
HTTPメソッドとは
サーバ側にやってほしい処理を伝えるもの。
GET URIで指定したリソースを取得する。
POST クライアントからサーバに(キーバリューペアの)データを送信する。
PUT データを送信し、URIで指定したサーバ上のリソースと置き換える。
PATCH PUTと同様にデータを置き換えるが、差分のみ変更する。
#rails3まではputが広く使われいたが、rails4からはpatchに移行している。
DELETE URIで指定したサーバ上のリソースを削除する。
URIとは
Webサーバ上のリソース(ファイル)の在り処を示したもの。
URLとは
もう少し細かく分けると...
HTTPバージョンとは
HTTP(フォーマット)のバージョン。
リクエスト・ヘッダとは
HTTPリクエストを送るときの付加情報が含まれる。
body部で足りない情報がメタ情報として記述される。
ここでいうメタ情報とは、「データに対する補足情報」のこと。
これらの情報は、キーバリューペアで送信される。
HOST情報やUser-Agent、cookieなどが代表的。
Host情報とは
URLのホスト部の情報。
User-Agentとは
インターネットするときにくっつく名札のようなもの。
ウェブサイトに訪問する際「Google Chromeからアクセスしています」「iPhoneからアクセスしています」などのどんな環境でアクセスしているのかの利用者の情報のこと。
cookieとは
WebサーバがWebブラウザに渡すメモのようなもの。
HPを訪問したユーザーの情報を一時的の保存する仕組み、またはそのデータ。
ID、パスワード、メールアドレス、訪問回数などがユーザー情報として保存される。
cookieの役割
Webサイトが将来必要とするだろうユーザーの情報を、スマホやPC内にあらかじめ置いておくこと。
これによって再訪問したときにユーザーを特定し、情報を入力する手間が省けます。
例)
・IDとパスワードを入力して一度ログインしたサイトに、しばらくしてからもう一度アクセスするとIDとパスワードを入力しないでもすんなり入れるようにすること。
・買い物をしている途中で、商品をカートに入れたままログアウトしたショッピングサイトに、しばらくしてからもう一度アクセスすると、カートの中の品物が消えずにしっかり残っているようにすること。
cookieの保存場所
Macの場合
Users/ユーザー名/Library/Application Support/Google/Chrome/Default
cookieの注意点
まず、cookieはそれをつくったWebサイトだけが読み込める仕組みになっているので、cookieが不正に盗まれて流用されたりする危険は原理的にはない。
しかし...
注意 :cookieを有効にしていないと、うまくWebサイトが表示されなかったり、買い物ができなかったりという不便が生じる。
解決策:cookieを有効に設定する。
注意 : 他人にデバイスを盗まれたら勝手に買い物などをされてしまう。
解決策:デバイスにロックをかける。
注意 :漫画喫茶や学校など、共有のPCでIDとパスワードを使ってWebサイトにログインした場合、cookieが残っていると次に使った第三者に不正利用されてしまう。
解決策:PCを使い終わったら、すぐにcookieを削除してしまう。
キャッシュとcookieの違い
クッキー:会員証のような役割。次にアクセスしたときに「前はこれをやったね。次はこれ」と表示内容を個人に合わせて変えることができる。
キャッシュ:ブラウザなどが、ウェブページの画像やデザイン情報を一時保管⇒次に同じページにアクセスしたときにサクッと表示してくれる仕組み。
ボディ部とは
POST/PUT/PATCHを使い、ブラウザからサーバに情報を送信するときには、ボディ部に情報が埋め込まれる。
HTTPレスポンスの構成
- ステータス行
- レスポンス・ヘッダ
- ボディ部
ステータス行とは
HTTPバージョン 、 ステータスコード 、 説明句 で構成される行。
ステータスコードとは
サーバからのレスポンスの意味を表現する3桁のコードのこと。
1xx
Informational 情報
リクエストは受け取られた。処理は継続される。
2xx
Success 成功
リクエストは受け取られ、理解され、受理された。
3xx
Redirection リダイレクション
リクエスト完了のために、追加的な処理が必要。
4xx
Client Error クライアントエラー
クライアントからのリクエストに誤りがあった。
5xx
Server Error サーバエラー
サーバがリクエストの処理に失敗した。
説明句とは
ステータスコードの意味を説明する句。
200 OK
成功しました。
304 Not Modified
更新されていません。
404 Not Found
見つかりません。
サーバーで予期しないエラーが発生しました。
レスポンス・ヘッダとは
HTTPレスポンスを送るときの付加情報が含まれる。
body部で足りない情報がメタ情報として記述される。
ここでいうメタ情報とは、「データに対する補足情報」のこと。
これらの情報は、キーバリューペアで送信される。
以下、基本事項を抽出しました。
Content-Typeとは
ファイルの種類を示す情報を指定する項目。
HTMLに使用している文字コードを示すことで、文字化けや誤動作を回避する。
≒ MIMEタイプ
MIME(マイム)タイプとは
ファイルの種類を示す情報。
ファイルの分類/ファイルの種類で構成される。
例)text/html
P3Pとは
Platform for Privacy Preferencesの略。
サイト運営者が個人情報を保護しながら、ユーザーが自分の情報をどの程度Webサイトに提供するかをコントロールできるようにする技術仕様。
P3P導入の背景
例えば、cookieを使うとユーザーのアクセス情報を収集することができる。
米国ではこの情報を使った広告配信に対して訴訟が起こされたこともある。
結果、個人情報のコントロールをユーザー側に戻すことを目的にP3Pが導入された。
X-Content-Type-Options: nosniff,X-XSS-Protection: 1; mode=block,X-Frame-Options: SAMEORIGIN,X-XRDS-Location: ,
XXS等によってcookieなどが盗まれることを防ぐためのもの。
XXSとは
エンドユーザー側がWebページを制作することのできる動的サイト(例:TwitterなどのSNS、掲示板等)に対して、その脆弱性を利用して悪意のある攻撃者が制作した不正なスクリプトを挿入することによりその発生するサイバー攻撃。
Vary: Accept-Encoding,Expires: -1,Pragma: no-cache,Cache-Control:
キャッシュを残すためのもの。
ボディ部とは
今回はGETリクエストに対して、レスポンス・ボディとしてHTMLが返っている。
次回予告
インターネットとは
・・・
長くなってきたので、続きはまた明日書きます... 🙇♂️
<一日一新>
タオピオミルクティーHOT。85℃ ...っ!??
<学習進捗>
学習開始からの期間 :87日
今日までの合計時間:858h
今日までに到達すべき目標時間:793h
目標との解離:65h
「10,000時間」まで、
残り・・・「9,142時間!」
以上です。
読んでくれた方々、ありがとうございました!((_ _ (´ω` )ペコ。