🕸️

Webアプリケーション開発の基礎知識まとめ

2024/07/25に公開

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レスポンスを返すと削除されるため、セッションスコープよりメモリを有効に使うことができる。

6章 -参考文献

  • 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
  • わわわIT用語辞典
  • 「MVCモデルのフレームワーク|神田ITスクール」引用

Discussion