Webアプリケーション開発の基礎知識
インターネット、HTTP通信、API、データベースなど、Webアプリ開発に必要な基礎概念を1ページで網羅。実務で役立つクイックリファレンスとしてご活用ください。
URLの構造
https://example.com:8080/api/users?id=123
● プロトコル: https:// - 通信方式(HTTP/HTTPS)
● ドメイン: example.com - サーバーの場所
● ポート: :8080 - サービスの入口(省略可)
● パス: /api/users - リソースの場所
● クエリ: ?id=123 - 追加パラメータ
IPアドレスとDNS
IPv4
192.168.1.1
4つの数値(0-255)
IPv6
2001:db8::1
16進数表記
DNS(Domain Name System)
ドメイン名(example.com)をIPアドレスに変換するシステム
localhost = 127.0.0.1
自分のコンピュータ(開発環境で使用)
クライアント・サーバーモデル
クライアント
リクエスト送信
サーバー
レスポンス返却
● クライアント: ブラウザ、スマホアプリなど
● サーバー: データやページを提供
● リクエスト/レスポンスで通信
HTTPステータスコード
2xx 成功
200 OK - リクエスト成功
201 Created - リソース作成成功
3xx リダイレクト
301 Moved Permanently - 永久移動
302 Found - 一時的な移動
4xx クライアントエラー
400 Bad Request - リクエスト不正
401 Unauthorized - 認証が必要
404 Not Found - リソース未検出
5xx サーバーエラー
500 Internal Server Error - サーバー内部エラー
503 Service Unavailable - サービス利用不可
HTTPメソッド(CRUD操作)
GET(取得)
データの取得に使用
GET /api/users/123
POST(作成)
新しいデータの作成
POST /api/users
{name: "Taro"}
PUT(更新)
既存データの更新
PUT /api/users/123
{name: "Jiro"}
DELETE(削除)
データの削除
DELETE /api/users/123
JSON(JavaScript Object Notation)
基本構造
{
"id": 123,
"name": "山田太郎",
"email": "yamada@example.com",
"active": true,
"tags": ["premium", "verified"],
"profile": {
"age": 30,
"city": "Tokyo"
}
}
データ型
文字列 - ダブルクォートで囲む
数値 - 整数、小数
真偽値 - true / false
配列 - [ ] で囲む
オブジェクト - { } で囲む
null - 値なし
REST API設計のベストプラクティス
リソース指向のURL設計
GET /api/users # 一覧取得
GET /api/users/123 # 個別取得
POST /api/users # 新規作成
PUT /api/users/123 # 更新
DELETE /api/users/123 # 削除
設計原則
● 名詞を使う(動詞NG)
✅ /users
❌ /getUsers
● 複数形を使う
✅ /users
❌ /user
● 階層構造で関連表現
/users/123/posts
● 小文字とハイフン使用
✅ /user-profiles
❌ /UserProfiles
Webアプリケーションの3層構造
フロントエンド
ユーザーが直接操作する部分
● HTML/CSS/JavaScript
● React, Vue, Angular
● ブラウザで実行
バックエンド
ビジネスロジック処理
● Python, Java, Node.js
● Django, Spring, Express
● APIの提供
データベース
データの永続化
● PostgreSQL, MySQL
● MongoDB, Redis
● データ管理・検索
実務で役立つTips
開発者ツール
ブラウザのF12キーで開発者ツールを開き、NetworkタブでHTTP通信を確認できます。
HTTPS必須
本番環境では必ずHTTPSを使用。通信内容が暗号化され、安全性が確保されます。
CORS対策
異なるドメイン間通信にはCORS設定が必要。サーバー側でAccess-Control-Allow-Originを設定します。
冪等性の理解
GET, PUT, DELETEは冪等(何度実行しても同じ結果)。POSTは非冪等(実行するたびに新規作成)。
よく使うポート番号(開発環境)
3000
React, Next.js
8000
Django, FastAPI
8080
Spring Boot
5432
PostgreSQL
3306
MySQL
6379
Redis
27017
MongoDB
443
HTTPS
HTTP通信の流れ
HTTPS通信の場合は、TCP接続後にSSL/TLSハンドシェイクが追加されます