teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

node.js

2017/11/24 13:49

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,3 +1,5 @@
1
+ ### サーバサイドとクライアントサイド
2
+
1
3
  昔はサーバサイドでバリデーションを行う方法しか存在しませんでした。
2
4
  クライアントサイドでのバリデーションが注目されたのは、「クライアントサイドによるバリデーション」が**サーバに送信されるまでバリデーション出来ない**という「サーバサイドによるバリデーション」の欠点を克服できるものだったからです。
3
5
  しかし、「クライアントサイドによるバリデーション」はHTML/JavaScriptを書き換えればバリデーションなしで送信出来てしまう不完全性の問題があります。
@@ -5,9 +7,14 @@
5
7
  クライアントサイドによるバリデーションはサーバサイドのそれと同じである方が勿論好ましいですが、必ずしも完全に一致する必要はありません。
6
8
  その代わり、サーバサイドによるバリデーションが完全性を保証する必要はあります。
7
9
 
10
+ ### サーバ/クライアントサイドのバリデーションを同期する
11
+
8
12
  > このチェックのルールの同期(フロントとバックでのチェックルールの統一)の際、有用な方法はなにかありますでしょうか。
9
13
 
10
14
  「全く同じバリデーションになるように双方のアルゴリズムを組む」以外に方法はないと思います。
11
15
  クライアントサイドからサーバサイドに逐一リクエストしてサーバサイドで判定することで完全に一致させつつ、クライアントサイドのコーディング量を少なくすることが可能ですが、それでは「クライアントサイドのメリット(HTTPリクエストするタイムラグがない)」を相殺します。
12
16
 
17
+ **(2017/11/24 22:49追記)**
18
+ サーバにnode.jsを採用すれば、JavaScriptコードを部分的に流用出来るかも知れません。
19
+
13
20
  Re: LokiTick さん