同期トークン
Advertisement
重複するリクエスト
HTTPのメカニズムで実現されているシステムでは、重複するリクエストの問題が発生する。状況としては以下のような例がある。
ボタン押下でリクエスト送信後、レスポンスを受け取る前に再びボタンを押下できる。
ブラウザの進む・戻るボタンによる画面遷移で、送信済みのリクエストを再送信してしまう。
JavaScriptやHTTPヘッダのno-cacheの仕組みなどにより対処することも出来るが、ブラウザの実装や設定に依存する。
同期トークンを使うことで確実に対応できるようになる。
同期トークンの仕組み
クライアントからサーバへ画面表示のリクエストを送信する。
サーバはレスポンス用の画面を作成する。その際に、一意となるトークンを作成し、画面に埋め込む。また同様にセッションにもトークンを埋め込む。
クライアントはトークンが埋め込まれた画面を受け取る。
クライアントはサーバに対してトークンを含むリクエストを送信する。
サーバは受け取ったトークンと、セッションから取り出したトークンの比較を行う。
トークンが一致すれば、セッションのトークン情報をクリアした後、処理を継続する。
2度押しのリクエストを受け取った場合、1度目のリクエストでセッションのトークン情報はクリアされているので、重複した処理は行われない。
Advertisement
ショートカット
・
634トップページ
・
このカテゴリのトップページに戻る
・
634ラボ
サイト検索
Web
サイト内
Y!ログール