Avatar
0
monkey Enlightened
monkey Enlightened
Tại sao những framework/language như là NodeJS, Golang thì thường tự run được 1 web application?
a có thể explained cho e tại sao những framework/language như là NodeJS, Golang thì thường tự run được 1 web application mà ko cần 1 webserver như Apache Tomcat giống Java Spring ko a?
  • Answer
java go node.js
Remain: 5
1 Answer
Avatar
monkey Enlightened
monkey Enlightened
  1. Đầu tiên phải hiểu bản chất 1 web application là gì đã. Thì web application là 1 phần mềm mà có thể chạy được trên trình duyệt web. Và các tài nguyên như html, css, js, ảnh, content ... sẽ được lấy từ 1 web server. Vậy tiếp theo cần hiểu web server là gì.
  2. Web server là một phần mềm chạy trên máy chủ, được xây dựng để client kết nối đến thông qua HTTP, ngày nay thì có nhiều giao thức khác nữa như websocket chẳng hạn, nhưng phổ biến nhất vẫn là HTTP. Tiếp theo thì xem có bao nhiêu cách tạo 1 web server.

Cách 1: Là tạo ra 1 web server chạy độc lập, lúc này thì để mà em có thể chạy cái code của em, thì em sẽ cần phải viết code theo một quy tắc nào đó mà do cái web server kia nó quy định, ví dụ như tomcat thì nó sẽ yêu cầu em thừa kế một số lớp servlet và cấu hình qua file web.xml, rồi phải đóng gói thành file.war rồi ném vào thư mục apps. Đó là cách mà các web server như tomcat, jetty hay jboss đang hoạt động. Vì ngày xưa tài nguyên còn hạn chế nên người ta muốn deploy nhiều ứng dụng khác nhau trên 1 server nên cách này là phù hợp.

Cách 2: Là sử dụng web server giống như 1 framework nhúng (embedded server), thì em sẽ viết code của em, sử dụng framework tomcat embedded chẳng hạn (spring nó chỉ wrap lại thôi), khi chương trình của em khởi động thì nó sẽ khởi động cả web server và code của em luôn. Đây là cách ngày nay người ta hay dùng, vì mỗi 1 webserver nên làm 1 việc thì sẽ tốt hơn cho việc nâng cấp về sau.

  • Với go, nó có thể build ra được native app để chạy mà không cần thông qua máy ảo, và các thư viện cũng ở dạng nhúng nên nó là cách 2.
  • Với Node.js, mặc dù vẫn chạy thông qua node nhưng các thư viện cũng ở dạng nhúng nên nó là cách 2.
  • Với java dùng spring boot, thì nó cũng sử dụng thư viện nhúng nên là cách 2, còn nếu em code theo cách truyền thống không dùng spring boot thì đó là cách 1.
  • 0
  • Reply