Web/メール


Study

Web

HTTP

  • Webブラウザが、Webサーバとデータを送受信する際に用いるプロトコル
    • アプリケーション層のプロトコル
  • HTTPメッセージ
  • 人間が理解できるテキストメッセージの形でやり取りされる

HTTPリクエスト

  • WebブラウザからWebサーバへ送るメッセージ
  • 構成
    • リクエスト行
      • 主要な要求情報
        (メソッド)(データのパス名)(バージョン)
        GET /index.html HTTP/1.1
    • メッセージヘッダ
      • 詳細情報
    • メッセージボディ
      • データが必要なときはここにおかれる

HTTPレスポンス

  • WebサーバからWebブラウザへの応答
  • 構成
    • ステータス行
      • 主要な応答情報
        (バージョン)(ステータス・コード)(説明)
        HTTP/1.1 200 OK
    • メッセージヘッダ
      • 詳細情報
    • メッセージボディ
      • HTMLデータなど
  • ステータス・コード
    • 100番台(情報)
    • 200番台(成功)
      • 200OK リクエストの処理に成功した
    • 300番台(転送)
    • 400番台(クライアント・エラー)
      • 401 Unauthorized アクセス認証が必要
      • 403 Forbidden データにアクセスできない
      • 404 Not Found 要求されたデータがない
    • 500番台(サーバー・エラー)

プロキシ

  • HTTPのやり取りを、仲介して行ってくれるプロキシ・サーバ
  • 利点
    • Webアクセスの高速化
      • キャッシュを利用して、わざわざWebサーバとやり取りしなくて良い
    • インタネットのトラフィック削減
    • セキュリティ
      • インターネットに直接アクセスするのはプロキシ・サーバになる
  • メッセージ内容の変化
    • HTTPリクエストのパス名が、細かくなる
      • 直接Webサーバとやり取りするわけではない
      • プロキシサーバにWebサーバのドメイン名も含めた要求メッセージを送る必要がある

メール

  • サーバが送受信で2種類
    • SMTPサーバ
      • メールを転送・送信するサーバ
      • 常に起動していなければならない
    • POPサーバ
      • 受信したメールを、要求が来たときに送るサーバ
      • 必要時のみ応答すればよい

SMTP*1サーバ

  • メールがきたらすぐに転送しなくてはいけないので、常時起動
  • やり取り
    • TCP接続開始
      • TCPポート25番、もしくは587番
    • HELOコマンド
      • SMTPでのやり取り開始合図
    • MAILコマンド
      • 送信元の通知
      • メールを複数続けて送信する場合はここから繰り返す
    • RCPT*2コマンド
      • 宛先の通知
      • メールを同報するときは、宛先をここで全て送っておく
    • DATAコマンド
      • メールの本体送信開始合図
    • メール本体送信
    • QUITコマンド
      • SMTPでのやり取り終了合図
    • TCP接続終了

SMTPの認証の仕組み

  • POP3とは違って送信時には認証を行わない
    • 迷惑メール等が送れないように認証の仕組みを取り入れた
  • POP before SMTP
    • メールを送信する前にPOP3でユーザを認証する
    • 一定時間IPアドレスを保持するので、しばらくはそのIPアドレスからの送信を許可する
    • IPアドレスを保存してる間に、偽装別ユーザに送られてしまうことがある
  • SMTP AUTH*3
    • SMTPに認証の仕組みを取り入れたもの
      • メールサーバとメーラーの両方が対応してないといけない
    • 最近では結構対応してるので良く使われる
  • SPF*4による認証
    • DNSサーバの持っているドメイン名とIPアドレスの対応付けSPFレコードを参照して認証する
      • ユーザはDNSサーバにSPFレコードを登録しておく必要がある
    • IPアドレスや電子署名を基に、送信元アドレスを認証できる
      • 送信元アドレスの詐称を突き止められる

POP3*5サーバ

  • 要求がきたときだけ、メールを送る
  • やり取り
    • TCP接続開始
      • TCP110番ポート
    • 認証
      • USERコマンドでユーザ名の通知
      • PASSコマンドでパスワードの通知
    • トランザクション
      • LISTコマンドでメール一覧(番号とデータサイズ) UID*6
      • RETR*7コマンドでメールの取り込み
      • QUITコマンドで終了
    • アップデート
      • メーラーから、メールの削除などサーバでの処理のアップデートを行う
    • TCP接続切断

*1 Simple Mail Transfer Protocol
*2 ReCiPienT
*3 AUTHentication
*4 Sender Policy Framework
*5 Post Office Protocol version3
*6 Unique IDentifier
*7 RETRieve