Template engine: 2 hướng (ko loại trừ nhau):
Resolve template ngay từ server (PHP hoặc các thư viện bổ sung, Razor của ASP.NET, v.v);
Resolve template ở dưới client (Angular, React, Vue, v.v)
MVC: ở đâu cũng được, MVC là 1 đường lối phân chia code (Giao diện, dữ liệu và điều khiển)
SPA: ngày xưa người ta hay làm web kiểu việc gửi nhận dữ liệu là phải load lại cả web (cho nên hay dùng template engine ở server), giờ muốn làm cho trang web giống app thông thường trong hđh, client và server có thể trao đổi dữ liệu mà không nhất thiết request lại cả trang (nhóm công nghệ ajax, webapi, websocket, v.v.)
Router trên server: đơn giản chỉ là pattern matching lên chuỗi url của request để chạy event tương ứng trên server để trả response tương ứng.
Router dưới client: cũng gần như thế, nhưng url có thể thay đổi mà không khiến load lại cả trang, mà thay vào đó là chạy event tương ứng (tự thay đổi giao diện, gọi tiếp api lên server, v.v)
JWT: đây là 1 chuẩn để trao đổi dữ liệu qua lại một cách an toàn và bảo mật (ứng dụng vào: authorized token, truyền dữ liệu nhạy cảm, v.v)