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
最も利用されるメソッド GET
と POST
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)… サーバがリクエストを処理をする準備ができていないことを示す
cookie サイズ … 1つ4KB 有効期限の設定必須(設定されていない場合はブラウザを閉じるタイミングで削除される) JavaScriptで設定可 ブラウザ設定で無効化可
項目 | 説明 |
---|---|
HttpOnly属性 | JavaScriptから読み書き禁止。 |
Domain属性 | 指定することで複数ドメインでcookieの共有が可能になる。 |
Secure属性 | 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でハッシュ化して送信(盗聴や改ざんを防ぐ)