🕸️
Webアプリケーション開発の基礎知識まとめ
0章 -本記事の目的
Webアプリケーション開発を行う上で、基礎知識を書籍・ネットで勉強したため、アウトプットします。
1章 -HTTP
ネットワークの基礎知識
- IPアドレス:インターネット上の住所(192.168.0.1など)
- 別のコンピュータにデータを届ける時、データは「パケット」と呼ばれる単位に分割されて送受信される
- パケットの送受信はTCP/IPという通信プロトコルが担う
HTTPリクエスト
HTTPリクエストは「リクエストライン」、「メッセージヘッダ」、「メッセージボディ」で構成される。
※引用:わわわIT用語辞典 HTTPリクエストメッセージボディ
HTTPリクエストライン
リクエストラインは以下のようなもの
- 左からメソッド・URI・HTTPバージョンを意味する。
POST /index.html HTTP/1.0
- メソッド(主なメソッドは以下)
- Get(データ参照)
- Post(データ作成)
- Put(データ更新)
- Delete(データ削除)
- URI
- リソースを意味する
- HTTPバージョン
- 使用されているバージョンを意味する
HTTPメッセージヘッダ
- メッセージヘッダは以下のようにkey-value形式で表現される
- <Field名> : <Field値>
- 代表的なField名(key)は以下。
- Accept : クライアントが受け取れるデータの種類を表す
- User-Agent : 利用しているクライアントの種類を指す。
- Host : リクエスト送信先ホスト名・ポート番号を指す
HTTPメッセージボディ
- メソッドがPostの場合、パラメータの内容が以下のように渡される。
arg1=123&arg2=456
HTTPリクエスト_パラメータの渡し方
- URI上でパラメータを渡す:パスパラメータとクエリパラメータ
- ?の前がパスパラメータ
- ?の後がクエリパラメータ
https://example.com/pathparameter/{パスパラメータ}?{クエリパラメータ1}=hogehoge&{クエリパラメータ2}=fugafuga
- Postメソッドの場合、リクエストメッセージボディにパラメータが入る
- 利点1:URIにパラメータが入るので第三者に見られる可能性が低い
- 利点2:メッセージボディは文字数制限がない
メソッドの使い分け:Get Or Post ?
メソッド | Get | Post |
---|---|---|
パラメータ格納場所 | URI | メッセージボディ |
セキュリティ | 低 | 高 |
パラメータの長さ | 制限あり | 制限なし |
パラメータの保存 | しやすい | しにくい |
HTTPレスポンス
※引用:わわわIT用語辞典 HTTPレスポンス
HTTPレスポンス_ステータスライン
- レスポンスの結果を端的に表したのがステータスライン
- 左から、HTTPバージョン、ステータスコード、レスポンスフレーズを意味する
HTTP/1.1 200 OK
- 主なステータスコード
- 200 : OK
- 302 : Found (リダイレクト)
- 401 : Unauthorized (ユーザ認証失敗)
- 403 : Forbidden (権限なし)
- 404 : Not Found (リソースがない)
- 500 : Internal Server Error(サーバー内部のプログラム実行時にエラー)
HTTPレスポンス_メッセージヘッダ
- レスポンスに関する付加的な情報が入っている
HTTPレスポンス_メッセージボディ
- HTMLファイルなど、ブラウザが欲しがっていた情報が入っている。
2章 -CookieとSession
ログイン状態をCookieで保存する
- HTTPは、ステートレスプロトコル(状態を持たない)で、ログイン情報等を保存するためにCookieが生まれた
- CookieはHTTPリクエスト・レスポンスのヘッダーに入る
安全にCookieを使うためにセッションを使う
- Cookieにパスワード等入れてしまうとセキュリティ問題が発生するため、セッションを使う
- セッション=Webサーバーに保存する一連の処理単位
- 具体的には以下のにようにCookieとセッションを使う
- (1)WebサーバーがセッションIDをCookieに保存して、クライアントに送る
- (2)クライアントは、HTTPリクエストがあるときにCookieを送る
- (3)Webサーバーは、送られたCookieに格納されたセッションIDを見て、ログイン状態を確認する
3章 -サーバーの構成要素
- 以下の3つの構成を、「3層構成」と呼ぶ
- Webサーバー
- アプリケーションサーバー
- DBサーバー
4章 -アーキテクチャ
- 特定の設計スタイルと、その設計に基づく全体構造をアーキテクチャと呼ぶ
- MVCモデル
- Controller:クライアントからのリクエスト受付、モデルやビューの呼び出しを行う。処理やoutputのロジックは持たない
- Model: 処理の部分。クライアントからの入力や、出力のロジックは持たない
- View : Outputのロジックを持つ
※「MVCモデルのフレームワーク|神田ITスクール」引用
5章 -他
-
リダイレクトとフォワード
- 複数回のHTTPのやりとりを行うのがリダイレクト
※リダイレクトとフォワードの違いを知る
- 複数回のHTTPのやりとりを行うのがリダイレクト
-
リクエストスコープ
- フォワード元とフォワード先の間で情報を共有する仕組み
- リクエストスコープは、HTTPレスポンスを返すと削除されるため、セッションスコープよりメモリを有効に使うことができる。
6章 -参考文献
- 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
- わわわIT用語辞典
- 「MVCモデルのフレームワーク|神田ITスクール」引用
Discussion