Webの基礎知識
(ヘッダフィールド、メッセージボディ)
○HTTPリクエスト
ブラウザからWebサーバに対する要求
★用いられるメッセージは使用で構造が決められている
★メッセージ構造は、HTTPレスポンスと同じものになる
メッセージ構造
①開始行 ②HTTPヘッダ ③空行 ④メッセージボディ
①開始行:
・リクエスト先のURL
・HTTPのリクエストメソッド
・HTTPのバージョン
②HTTPヘッダ
・ヘッダ名
・:(コロン)
・値
→ Content-Type「ヘッダ名」 :「コロン」 text/plain「値」
★Accept-Languageヘッダフィールド
・HTTPヘッダの一つ
・ブラウザが受け入れ可能な自然言語(日本語や英語等)を指定する
※JavaScriptのようなプログラミング言語は指定できない
※HTTPヘッダフィールドの種類は要検索
④メッセージボディ(リクエストボディ・レスポンスボディ)
ブラウザ・Webサーバ間で送受信するデータ
★POSTメソッドでブラウザからWebサーバにデータを送信
→ データはメッセージボディ(リクエストボディ)に含む
★GETメソッドでリクエスト
→ メッセージボディ(リクエストボディ)は空になる
○Acceptヘッダフィールド
MIMEタイプでブラウザが受け入れられるコンテンツタイプを指定
★JSON形式のMIMEタイプはapplication/json
→下記3項目は誤り
text/html=HTMLファイル
text/plain=テキストファイルの規定値
application/javascript=javascriptを示す
→text/jsonは存在しない
○ステータスコード404
リソースが見つからない事をすめすコード
○URL
ネットワーク上のリソースを一意に識別するための記述規約
★記述規約
スキーマ://ホスト名:ポート番号/ディレクトリ/ファイル名
★URLのうち、「スキーマ://ホスト名:ポート番号」→オリジンと呼ぶ
★同一オリジンポリシー
→異なるオリジンのリソースにアクセスできないようにする制限
○HTTPS
安全にHTTP通信を行うプロトコル
★HTTPとの違い
HTTPは平文で通信する。
HTTPSは、SSL/TLSで暗号化して通信をする
※暗号化には、認証局(CA)が発行する証明書が必要
★暗号化のメリット
なりすましや盗聴を防ぐことができる
★暗号化と復号が伴うため、HTTP通信と比べると、
クライアントとWebサーバ側の負荷が高まる。
○HTTPで定義されているリクエストメソッド
★「GET」「PUT」「CONNECT」
※UPDATE、DROPは定義されていない
○キャッシュ
Webサーバから取得したリソースを保存する技術
★リソースのリクエストをした際に、キャッシュが保存されていると、
サーバではなく、近くのキャッシュからリソースを取得する
◇メリット:・通信のパフォーマンス向上 ・Webサーバの負荷低減
◇デメリット:リソースの更新が反映されない(ユーザに適切なリソースを返せない)
※そのため、キャッシュの長時間保存は薦めない
キャッシュを制御するヘッダフィールドの一例
★Cache-Control★
→キャッシュのコントロールを行う
:no-store(ブラウザ、Webサーバでキャッシュが保存されない)
:max-age=60(キャッシュの有効期限を秒単位で指定できる)
★Expires★
→レスポンスの有効期限を指定
:Fri, 28 Oct 2022 08:00:00 GMT(日付形式で指定)
※コントロールフィールドで指定されている場合、無視される
★Age★
→プロキシサーバにキャッシュする期限を指定する
※キャッシュ期限は秒数で指定
:10
○リダイレクト
指定したWebページから別のWebページに転送されること
★リダイレクトの指定方法
「OK」
・JavaScriptで指定
・タグで指定
・Locationヘッダフィールドで指定
「NG」
・タグで指定
→CSSの参照に使うタグのためNG
・Refererヘッダフィールドで指定
→ブラウザが閲覧していた前のURLを示す為NG