Webアプリケーションについての備忘録

Webアプリケーションのインフラってちゃんと整理してことがなかったので

ここで簡単にまとめます。まずはそもそもWebアプリケーションとは。。

 

そもそものWebサーバとのやり取り

1)Webページを見たいというリスエクスと送信

2)指定したページをレスポンスとして返す

 

URLとは?

Webページの場所を示すもの。

http://example.com/about.html

これは、

プロトコルhttpで、example.comという場所(サーバ)の/about.htmlというパス(ページ)へリクエストを送りなさい

という意味。

 

HTTPリクエスト

GET / HTTP1.1

これは、

GETというmethodでパス「/」にHTTPのバージョン「1.1」でリクエストを送るコマンド。

実際にやり取りしているリクエスト、レスポンスの中身はいくつくのブラウザで確認することができる。

例えば、FirefoxFirebugなど。

 

HTTPのレスポンス

主なレスポンスは以下の通り。

200:OK。正常にレスポンスが返る。

300番台:リダイレクト

400番台:クライアント側のエラー。404 NotFoundなど

500番台:サーバ側のエラー。500 Internal Server Errorや503 Serive Unavailableなど

 

動きを与えるJavaScript

クライアントサイド側での動的な仕掛けとして使われるのが「JavaScript

・Webページの特定の部分を動かすやアニメーションを加えるなど

 

動的サイトとは?

まずは静的サイトとは?

リクエストに応じにて静的なファイルを返却する。

静的なファイルとは、HTML、CSS、JavaScrip。

動的サイトとは、リクエストに応じてサーバ側のプログラムでページを生成するもの。

例えば、ユーザにログインさせユーザごとに異なる情報を表示するページを作成したりする。

言語としては、

PHPRubyPerlPythonJavaなど

 

セキュリティ対策

XSSクロスサイトスクリプティング)とは?

ユーザフォームなどユーザが情報を入力するサイトで、送信されたデータを再びユーザにHTMLとして描画する際に、不適切な処理を行い何かしらの攻撃を行うこと。

もっとも多いのがJavascripのコードが埋め込まれているテキストを「そのまま」HTMLをして描画すると、意図せず実行されてしまうケース。

対策としては、<>を文字参照を使い&lt;&gt;などに変換することで対応。

 

CSRFクロスサイトリクエストフォージェリ)とは?

悪意のあるユーザがユーザに被害を与える攻撃方法。アカウント乗っ取り。

対策は、悪意のあるユーザが知りえないセッションIDなどを使ってWebアプリ側で照合する。

 

XSSCSRFなど主な攻撃については、フレームワークが対策用の機能やライブラリを用意していることが多い。

 

CRUD

Webアプリではデータの出し入れが基本。

Create

Read

Upload

Delete

 

SQLite

MySQLPostgreSQLのようにリレーショナルデータベースのように使える+ファイルやメモリ上にデータが保存できるなど手軽に使えるツール

 

CSSCascading Style Sheets

質素なHTMLのページの見た目をクールにしてくれるための土台

CSSフレームワークとしては、Twitterが提供している「Bootstrap」がある。

ソフトウェアフレームワーク - Wikipedia

 

セッション

Webアプリが1セッションを表す「セッションID」を生成し、Webブラウザのクッキーへ記録する。サーバ側はそのクッキーを取得してセッションの特定を行う。

セッションの機能はWAF(Webアプリケーションフレームワーク)で備わっていることもある。