# IT面接準備 Ankiカード
## ネットワーク基礎
### カード1: URL入力からページ表示まで (1/3)
**Q:** ブラウザでURLを入力してから、最初に何が起こりますか?
**A:** DNSサーバーにアクセスし、ドメイン名に紐付けされたIPアドレスを取得します。
---
### カード2: URL入力からページ表示まで (2/3)
**Q:** IPアドレスを取得した後、ブラウザは何をしますか?
**A:** 取得したIPアドレスを元に、ブラウザからWebサーバーにリクエストを送信します。
---
### カード3: URL入力からページ表示まで (3/3)
**Q:** サーバーがリクエストを受信した後、どのようにレスポンスを返しますか?
**A:** データパケットという形でレスポンスを返却し、Webサイトの情報がブラウザに表示されます。
---
### カード4: Cookieの定義
**Q:** Cookieとは何ですか?
**A:** ウェブブラウザに保存された情報のことです。
---
### カード5: Cookieの使用場面 (1/2)
**Q:** Cookieの主な使用目的は何ですか?
**A:** ユーザー識別やセッション管理を実現する目的に利用されます。代表例として、ショッピングサイトのカート管理やログイン状態の管理があります。
---
### カード6: Cookieの使用場面 (2/2)
**Q:** Cookie は広告配信にどのように利用されますか?
**A:** IPアドレスに寄らないクライアントの識別を可能にするため、ユーザーの詳細なアクセス履歴を取得する用途に使われます。
---
### カード7: TCPの特徴 (1/2)
**Q:** TCP(Transmission Control Protocol)の主な特徴は何ですか?
**A:** 高信頼性(3wayハンドシェイク、ack による受信確認や再送処理)と通信効率の最適化機能(フロー制御や輻輳制御)を提供します。
---
### カード8: TCPの特徴 (2/2)
**Q:** TCPのデメリットは何ですか?
**A:** 信頼性を確保する機能があるため、UDPと比べて負荷がかかります。
---
### カード9: UDPの特徴 (1/2)
**Q:** UDP(User Datagram Protocol)の主な特徴は何ですか?
**A:** コネクションレス型のプロトコルで、TCPに比べると信頼性がないものの高速に転送を行うことができます。
---
### カード10: UDPの特徴 (2/2)
**Q:** UDPのメリットとデメリットは何ですか?
**A:**
- メリット:ヘッダサイズ(8byte)が少なく、アプリケーションデータを多く送受信できる
- デメリット:パケット到達の保証がなく、アプリケーション側で再送処理が必要
---
## HTTPステータスコード
### カード11: 200番台ステータス (1/3)
**Q:** HTTPステータスコード「200 OK」の意味は?
**A:** リクエストが成功したことを示します。成功の意味はHTTPメソッドにより異なります。
---
### カード12: 200番台ステータス (2/3)
**Q:** HTTPステータスコード「201 Created」の意味は?
**A:** リクエストが成功し、新たにリソースが追加されたことを示します。
---
### カード13: 200番台ステータス (3/3)
**Q:** HTTPステータスコード「204 No Content」の意味は?
**A:** リクエストに対して送信するコンテンツは無いが、ヘッダーが有用であることを示します。
---
### カード14: 300番台ステータス (1/2)
**Q:** HTTPステータスコード「301 Move Permanently」の意味は?
**A:** リクエストされたリソースのURLが永遠に変更されたことを示します。レスポンスで新しいURLが付与されます。
---
### カード15: 300番台ステータス (2/2)
**Q:** HTTPステータスコード「302 Found」の意味は?
**A:** リクエストされたリソースのURIが一時的に変更されたことを示します。クライアントは将来のリクエストでも同じURIを使用するべきです。
---
### カード16: 400番台ステータス (1/4)
**Q:** HTTPステータスコード「400 Bad Request」の意味は?
**A:** 構文が無効であるため、サーバーがリクエストを理解できないことを示します。
---
### カード17: 400番台ステータス (2/4)
**Q:** HTTPステータスコード「401 Unauthorized」の意味は?
**A:** クライアントは、リクエストされたレスポンスを得るためには認証を受けなければならないことを示します。
---
### カード18: 400番台ステータス (3/4)
**Q:** HTTPステータスコード「403 Forbidden」と「401 Unauthorized」の違いは?
**A:** 403は認証されていてもアクセス権がなくサーバーが拒否している状態。401とは異なり、クライアントの識別子がサーバーに知らされています。
---
### カード19: 400番台ステータス (4/4)
**Q:** HTTPステータスコード「404 Not Found」の意味は?
**A:** サーバーがリクエストされたリソースを発見できないことを示します。
---
### カード20: 500番台ステータス (1/4)
**Q:** HTTPステータスコード「500 Internal Server Error」の意味は?
**A:** サーバー側で処理方法がわからない事態が発生したことを示します。
---
### カード21: 500番台ステータス (2/4)
**Q:** HTTPステータスコード「502 Bad Gateway」の意味は?
**A:** リクエストの処理に必要なレスポンスを受け取るゲートウェイとして動作するサーバーが無効なレスポンスを返すことを示します。
---
### カード22: 500番台ステータス (3/4)
**Q:** HTTPステータスコード「503 Service Unavailable」の意味と一般的な原因は?
**A:** サーバーがリクエストを処理する準備が出来ていないことを示します。一般的な原因は、メンテナンスや過負荷でサーバーがダウンしていることです。
---
### カード23: 500番台ステータス (4/4)
**Q:** HTTPステータスコード「504 Gateway Timeout」の意味は?
**A:** ゲートウェイとして動作するサーバーが時間内にレスポンスを得られない場合に送られます。
---
## セキュリティ
### カード24: DoSとDDoSの違い (1/2)
**Q:** DoS(Denial of Service attack)とは何ですか?
**A:** ウェブサイトやサーバーに対して過剰なアクセスやデータを送付するサイバー攻撃のことです。
---
### カード25: DoSとDDoSの違い (2/2)
**Q:** DDoS(Distributed Denial of Service attack)とは何ですか?
**A:** DoS攻撃を対象のウェブサイトやサーバーに対して、複数のコンピューターから大量に行うことです。
---
### カード26: DDoS対策 (1/4)
**Q:** IDS(不正侵入検知システム)とは何ですか?
**A:** 不正な通信やアクセスがあった場合、それを検知して管理者に通知するシステムです。
---
### カード27: DDoS対策 (2/4)
**Q:** IPS(不正侵入防止システム)とは何ですか?
**A:** サーバーやOSへの通信を監視し、不正な通信やアクセスがあった場合にブロックするシステムです。
---
### カード28: DDoS対策 (3/4)
**Q:** WAF(Web Application Firewall)とは何ですか?
**A:** Webアプリケーションに対する通信を監視し、不正な通信やアクセスがあった場合にブロックするシステムです。
---
### カード29: DDoS対策 (4/4)
**Q:** CDN(コンテンツデリバリーネットワーク)がDDoS対策になる理由は?
**A:** ユーザーから最も近いキャッシュサーバーにアクセスするため、大量アクセスがあっても本体のサーバーに被害が起きないからです。
---
### カード30: XSSの定義
**Q:** XSS(クロスサイトスクリプティング)とは何ですか?
**A:** ユーザーがWebページにアクセスすることで不正なスクリプトが実行されてしまう脆弱性または攻撃手法です。被害の代表例は攻撃者による不正ログインです。
---
### カード31: XSSの対策
**Q:** XSS(クロスサイトスクリプティング)の対策方法は?
**A:** Webページに出力するデータのサニタイジング(無害化処理)を行います。
---
### カード32: CSRFの定義
**Q:** CSRF(クロスサイトリクエストフォージェリ)とは何ですか?
**A:** Webアプリケーション利用者自身が意図しない処理が実行されてしまう脆弱性または攻撃手法です。被害の代表例は使用者の意図しない処理実行です。
---
### カード33: CSRFの対策 (1/3)
**Q:** CSRF対策として、セッションCookieに使用すべき属性は?
**A:** SameSite属性を使用します。これによりドメインを跨いだ(クロスドメイン)リクエストにそのクッキーをセットさせないことが可能になります。
---
### カード34: CSRFの対策 (2/3)
**Q:** リファラーヘッダーとは何ですか?またCSRF対策にどう役立ちますか?
**A:** 遷移元のウェブページのアドレスが含まれているヘッダー情報です。サーバーはリクエストがどこから来たかを識別できるため、CSRF対策に有効です。
---
### カード35: CSRFの対策 (3/3)
**Q:** CSRF対策として有効なユーザーインタラクションベースの保護とは?
**A:** 再認証(パスワード入力)、ワンタイムトークン、CAPTCHAなど、ユーザーが特定の操作を行なったときシステムが反応を返す処理を実装することです。
---
### カード36: SQLインジェクションの定義
**Q:** SQLインジェクションとは何ですか?
**A:** データベースを不正に操作されてしまう脆弱性または攻撃手法です。
---
### カード37: SQLインジェクションの対策 (1/2)
**Q:** SQLインジェクション対策として最も推奨される方法は?
**A:** プレースホルダ、バインド変数を利用したエスケープ処理を行うことです。
---
### カード38: SQLインジェクションの対策 (2/2)
**Q:** SQLインジェクション対策で避けるべきことは?
**A:** ウェブアプリケーションに渡されるパラメータにSQL文を直接指定することを避けるべきです。
---
## データベース
### カード39: トランザクションの定義
**Q:** データベースにおけるトランザクションとは何ですか?
**A:** データベースをある一貫した状態から別の一貫した状態へ変更するアクションを1つに束ねたものです。相互依存のある複数の操作が全て完了するか、全てキャンセルされることを保証します。
---
### カード40: インデックスの定義
**Q:** データベースのインデックスとは何ですか?
**A:** レコードを高速に検索するための仕組みです。実際のデータが格納されたテーブルとは別に、インデックス・テーブルを作成して検索に使用します。
---
### カード41: インデックスの構成
**Q:** インデックス・テーブルはどのようなフィールドで構成されますか?
**A:** 検索対象となるデータを格納したフィールドと、そのデータが実際のテーブルでどの位置にあるかを示す値を格納したフィールドで構成されます。
---
### カード42: インデックスのメリット
**Q:** インデックスのメリットは何ですか?
**A:** データベーステーブルにアクセスするたびにすべての行を検索しなくても、データをすばやく見つけることが出来ます。
---
### カード43: インデックスのデメリット (1/2)
**Q:** インデックスの1つ目のデメリットは何ですか?
**A:** テーブルの更新・削除などを行うたびにインデックス・テーブルも対応してデータの更新を行わないといけないので、処理が多くなります。
---
### カード44: インデックスのデメリット (2/2)
**Q:** インデックスの2つ目のデメリットは何ですか?
**A:** インデックスの分だけデータの大きさが大きくなります。
---
### カード45: インデックスが効かないケース (1/5)
**Q:** インデックスが効くために必要なレコード数と該当率は?
**A:** 万単位のレコード、10~5%程度の該当率でないとインデックスは効きません。
---
### カード46: インデックスが効かないケース (2/5)
**Q:** カーディナリティとインデックスの関係は?
**A:** カーディナリティ(一意性)が十分でないとインデックスは効きません。
---
### カード47: インデックスが効かないケース (3/5)
**Q:** LIKE検索でインデックスが効かないパターンは?
**A:** 中間一致と後方一致の場合、インデックスは効きません。
---
### カード48: インデックスが効かないケース (4/5)
**Q:** インデックスが効かない演算子や関数は?(4つ挙げて)
**A:** OR、演算、関数処理(REPLACE、MAXなど)、否定形、IS NULL などがあります。
---
### カード49: インデックスが効かないケース (5/5)
**Q:** 統計情報が原因でインデックスが効かない場合、どうすればいいですか?
**A:** テストによる大量のINSERTやUPDATEで統計情報が現実に即していない場合は、統計情報をリセットします。
---
### カード50: インデックスの確認方法 (1/2)
**Q:** MySQLでインデックスを確認するSQLコマンドは?
**A:** `show index from テーブル名;` または `INFORMATION_SCHEMA.STATISTICS` テーブルを参照します。
---
### カード51: インデックスの確認方法 (2/2)
**Q:** SQLの実行計画を確認するコマンドは?
**A:** `EXPLAIN` コマンドを使用します。
---
### カード52: MySQLのクライアントツール
**Q:** MySQLのインデックスを確認できる代表的なクライアントツールは?
**A:** MySQL WorkBench、Sequel Ace などがあります。