学んだこと
オブジェクト指向とはなにか?
- 処理をもの(オブジェクト)として重点を置く考え方の一つ。
オブジェクト指向の利点
- メンテナンスがしやすい
- 処理毎にクラス分けされているため、処理が追いやすい。
- 開発作業を効率化しやすい
- クラスを継承することで、同じメソッドやプロパティを再利用することができる。
オブジェクト指向の弱点
- 理解するまでに時間がかかる。(継承・カプセル化・ポリモーフィズム)
- クラス設計を正しく行わないと、処理を追いづらいため管理が大変になる。
MVC モデルとは?
- M(モデル),V(ビュー),C(コントローラ)の頭文字を取ったソフトウェアアーキテクチャの 1 つ
モデル
- ビジネスロジックを担当する、データベースへの登録・更新・削除などの処理を行う。
- 取得したデータはコントローラに渡す。
ビュー
- ユーザインタフェースを担当。
- 各種リクエストデータをコントローラに渡す。
- コントローラからレスポンスデータを受け取り、表示を反映する。
MVC モデルのメリット
- 役割分担が明確化されているため、メンテナンスしやすい。
- モデル自体がビューやコントローラに依存していないため、異なる UI やシステムで再利用することができる。
MVC モデルのデメリット
- 役割(モデル・ビュー・コントローラ)についての理解に時間がかかる。
- 正しい設計を行わないとコントローラが肥大化しやすくなり、パフォーマンスに影響が出る。
- コントローラの処理が肥大化することで、処理の可読性が損なわれ改修が大変になる。
CRUD 処理とは?
- C(Create),R(Read),U(Update),D(Delete)の頭文字を取ったデータベースに対しての操作の総称。
Create
Read
Update
Delete
バリデーションとは?
- 入力内容に対して、仕様に沿ってデータをチェックし妥当か確認すること。
- 使用例・用途
- ログインページにてアカウント情報を入力し、データベースと照合しつつデータが正しいかチェックする。
- データベースにデータを登録時、正しいデータであるか確認後データベースに登録する。
非同期処理とは?
- タスク終了を待たずに、次のタスクを実行する処理のことを指す。
非同期処理のメリット
- データを非同期で処理を行った際に他の処理を待たずとも、処理を行うことができるためストレスがない。
- 時間のかかるデータを非同期で処理することで、1 つのスレッドを占有することがないため処理効率を向上できる。
HTTP と HTTPS の違い
- どちらとも Web サーバと Web ブラウザでやり取りするためのプロトコル。
- データ通信時に暗号化されているかの違い。
- HTTP は暗号化されないが、HTTPS は SSL/TLS で暗号化されており安全。
- HTTPS にするには SSL/TLS 証明書が必要。
HTTPS の仕組み
- クライアントからサーバにリクエストを送る
- サーバが SSL/TLS 証明書と公開鍵を送信
- クライアントが証明書を検証し、公開鍵を使って共通鍵を暗号化
- クライアントは暗号化した共通鍵をサーバへ送信
- サーバは秘密鍵を使って共通鍵を復号化
- 安全なデータ通信を実施
GET と POST の違い
- サーバからデータを取得するか、データを送信するかの違い。
GET
- サーバからデータを取得するリクエスト
- URL にクエリを含めて送信を行う。
- クエリは
?key=value
で書かれているものを指す。
- キャッシュ可能。
- 検索処理などデータを取得する用途に適している。
POST
- サーバにデータを送信するリクエスト
- リクエストボディを使ってデータを送信する。
- リクエストボディとはサーバに送るデータを格納する領域のこと。
- URL には表示されないため、比較的安全だが以下の対策を行い安全性をさせる。
- HTTPS 化し、データ自体を暗号化
- サーバ側でバリデーション実施
- データの整合性チェックなど妥当なデータか確認する。
- SQL インジェクション対策
- プレースホルダーを使用したり、エスケープ処理を行うようにする。
- CSRF トークンを使用する。
- WEB サーバで生成した CSRF トークンと利用者に配布している CSRF トークンを比較し、一致しなければ不正なリクエストとして処理を行うようにする。
- XSS 対策
- Javascript の処理を改ざんし、意図しない処理を実行してしまうのを防ぐ
レスポンシブデザインとは?
- デバイスや画面の比率に応じて、ブラウザのレイアウトを自動的に調整すること。
クッキーとセッション情報の違い
- サーバ or ブラウザに情報を保存されるかの違い。
クッキー
- ブラウザに保存されるデータ。
- 最大 4KB 保存することができる。
- ユーザ側で保持期間を決めることができる。
- 使用例:ログイン状態保持、ユーザの設定保存
- ユーザ側で変更・削除できるため、改ざんのリスクがある。
- サイトの設定等流出しても問題ないデータを保存するのに向いている。
セッション
- サーバに保存されるデータ。
- サーバ側でセッション ID を発行し、クライアント側に送信する。
- 発行したセッション ID を使用しリクエストを送ることで、サーバがユーザ情報を取得することができる。
- セッション ID はクッキーに保存される。
- ブラウザを閉じると、セッションは消えてしまう。
- セキュリティが高く、クライアント側でデータを改ざんすることは難しい。
- ログイン情報や個人情報等流出してはいけないデータを保存するのに向いている。
You May Also Enjoy
less than 1 minute read
学んだこと