Web基礎知識(更新中) - user000422/0 GitHub Wiki

**HTTP(HyperText Transfer Protocol)** HTML文書や画像などを提供するWebサーバとテキストメッセージを送受信するためのプロトコル

**HTTPS(HyperText Transfer Protocol Secure)** セキュリティを確保した通信経路上でHTTP通信を行う データを暗号化して送受信する TLSプロトコル(SSLプロトコル) を使用 暗号化には認証局が発行した証明書が必要

SSL/TLS … セキュリティを担保した通信を行うためのプロトコル 共通鍵暗号方式公開鍵暗号方式を組み合わせたハイブリッド方式

**HTTPのリクエストメッセージ(メソッド)** GET HEAD POST PUT OPTIONS DELETE TRACE CONNECT 最も利用されるメソッド GETPOST GET … リソースの要求 POST … リソースの送信 PUT … リソースの更新 HEAD … リソースの要求

HTTPステータスコード … リクエストの成功確認を示す数値 1xx … 情報レスポンス 100(Continue)… 現時点で問題なし、リクエストの継続が可能なことを示す 2xx … 成功レスポンス(通常ブラウザに表示されない) 200(OK)… リクエスト成功を示す 3xx … リダイレクト 301(Moved Permanently)… リクエストされたリソースが永遠に変更されたことを示す 303(See Other)… 別のURIへの参照を促されることを示す 4xx … クライアントエラー 401(Unauthorrized)… 認証に失敗したことを示す 403(Forbidden)… クライアントにアクセス権限がないことを示す 404(Not Found)… リソースが見つからない 5xx … サーバエラー 500(Internal Server Error)… サーバ側で何らかのエラーが発生したことを示す 503(Service Unavailable)… サーバがリクエストを処理をする準備ができていないことを示す

HTTP cookie サイズ … 1つ4KB 有効期限の設定必須(設定されていない場合はブラウザを閉じるタイミングで削除される) JavaScriptで設定可 ブラウザ設定で無効化可 HTTPSによる通信の場合のみ送信するように設定可

セッション … Webサーバがブラウザ単位で状態を保持する仕組み Webサーバから送られてくるセッションIDをブラウザのHTTPクッキーに保存する

デバイスアクセスAPI Geolocation API … ユーザの位置情報を扱うAPI APIの使用にはユーザの許可が必要 GPSのついていないPC等の端末でも、Wi-FiアクセスポイントやIPアドレスから位置情報の取得が可能 Device Orientation Event … デバイスの方角や傾きが変化した時に発生するイベント

■オフライン・ストレージAPI Web Storage(Local Storage)キーの組み合わせでブラウザにデータを保存する仕組み。HTTPcookieより大きな容量のデータを保存できる。 Indexed Database APIキーの組み合わせでブラウザにてデータベースとして利用可能にする仕組み。インデックス作成、トランザクション処理も可能。 Application cache … マニフェストファイルをブラウザにキャッシュさせることでオフラインでのWebページ閲覧を可能にする仕組み。 Web Workers … ブラウザでのスクリプト処理をバックグラウンドで実行する仕組み Service Workers … Webページとは別にバックグラウンドでスクリプトを実行できる環境

通信系API XMLHttpRequest … JavaScriptでHTTP通信を実現するAPI Ajaxで使われる 画面遷移を伴わずHTTP通信を行う WebSocket API … JavaScriptでWebSocketプロトコル通信を実現するAPI 双方向通信を実現(ブラウザとサーバ間) WebRTC … リアルタイムコミュニケーションを実現する仕組み。ビデオチャット。カメラ、マイク機能。

**■SPA(Single Page Applicaton)** HTMLファイルは1つでJavaScriptで動的に画面を変更する。従来は動作ごとにバックエンドがhtmlを切り替えていた

**■入出力フォーマット(ファイル)** JSON … XMLに比べて軽量で多くの言語でサポートされている。 csv … xxx XML … xxx

認証

**■HTTP認証方法(2種類)** Basic認証 … ユーザ名とパスワードを「:」で接続し、Base64でエンコードして送信(盗聴や改ざんが容易) Base64 … バイナリデータを印字可能文字に置き換える仕組み、変換後の文字列は64文字ごとに改行 Digest認証 … ユーザ名とパスワードをMD5でハッシュ化して送信(盗聴や改ざんを防ぐ)