Webアプリケーションについての備忘録
Webアプリケーションのインフラってちゃんと整理してことがなかったので
ここで簡単にまとめます。まずはそもそもWebアプリケーションとは。。
そもそものWebサーバとのやり取り
1)Webページを見たいというリスエクスと送信
2)指定したページをレスポンスとして返す
URLとは?
Webページの場所を示すもの。
これは、
プロトコルがhttpで、example.comという場所(サーバ)の/about.htmlというパス(ページ)へリクエストを送りなさい
という意味。
HTTPリクエスト
GET / HTTP1.1
これは、
GETというmethodでパス「/」にHTTPのバージョン「1.1」でリクエストを送るコマンド。
実際にやり取りしているリクエスト、レスポンスの中身はいくつくのブラウザで確認することができる。
HTTPのレスポンス
主なレスポンスは以下の通り。
200:OK。正常にレスポンスが返る。
300番台:リダイレクト
400番台:クライアント側のエラー。404 NotFoundなど
500番台:サーバ側のエラー。500 Internal Server Errorや503 Serive Unavailableなど
動きを与えるJavaScript
クライアントサイド側での動的な仕掛けとして使われるのが「JavaScript」
・Webページの特定の部分を動かすやアニメーションを加えるなど
動的サイトとは?
まずは静的サイトとは?
リクエストに応じにて静的なファイルを返却する。
静的なファイルとは、HTML、CSS、JavaScrip。
動的サイトとは、リクエストに応じてサーバ側のプログラムでページを生成するもの。
例えば、ユーザにログインさせユーザごとに異なる情報を表示するページを作成したりする。
言語としては、
セキュリティ対策
XSS(クロスサイトスクリプティング)とは?
ユーザフォームなどユーザが情報を入力するサイトで、送信されたデータを再びユーザにHTMLとして描画する際に、不適切な処理を行い何かしらの攻撃を行うこと。
もっとも多いのがJavascripのコードが埋め込まれているテキストを「そのまま」HTMLをして描画すると、意図せず実行されてしまうケース。
対策としては、<>を文字参照を使い<>などに変換することで対応。
悪意のあるユーザがユーザに被害を与える攻撃方法。アカウント乗っ取り。
対策は、悪意のあるユーザが知りえないセッションIDなどを使ってWebアプリ側で照合する。
XSSやCSRFなど主な攻撃については、フレームワークが対策用の機能やライブラリを用意していることが多い。
Webアプリではデータの出し入れが基本。
Create
Read
Upload
Delete
MySQLやPostgreSQLのようにリレーショナルデータベースのように使える+ファイルやメモリ上にデータが保存できるなど手軽に使えるツール。
質素なHTMLのページの見た目をクールにしてくれるための土台
CSSのフレームワークとしては、Twitterが提供している「Bootstrap」がある。
セッション
Webアプリが1セッションを表す「セッションID」を生成し、Webブラウザのクッキーへ記録する。サーバ側はそのクッキーを取得してセッションの特定を行う。
セッションの機能はWAF(Webアプリケーションフレームワーク)で備わっていることもある。