thắc mắc Các bước tổng quát sau để cho một website (có backend logic) hoạt động được có đúng không?

diving_diver

Senior Member
Mình muốn làm một trang web, nhưng chưa bao giờ làm cái web gì đầy đủ tính năng. Lúc này mình nghĩ mông lung ra những bước sau để cho trang web (có backend logic, ví dụ: query vào database, gọi API để lấy một json chứa tên tác giả và bài hát...) hoạt động, nhờ mọi người cho ý kiến xem có đúng không:

1. Trình bày web ra bằng HTML + CSS.
2. Đặt index.html hoặc index.php vào thư mục /var/www/webCuaToi (hoặc thao tác tương tự với nginx).
3. Sau khi hoàn thành bước 2, người dùng nhập vào đúng tên miền (hay IP) trên trình duyệt thì có thể xem được nội dung trong index.html hoặc index.php (nếu máy chứa file trên vẫn để mở, đã config những thứ cần thiết...).

Nhưng bây giờ mới đến phần khó: làm ra một cái server có thể thực hiện nhiều tác vụ khác, chứ không đơn thuần là xem index.html hay index.php. Như vậy thì chỉ là một trang web giới thiệu đơn giản thôi. Mình hiểu là cần làm những bước sau:

4. Code các logic backend đó bằng PHP, hay bằng JS nữa có được không? Mình chỉ biết dùng JS nhúng vào HTML để làm AJAX thôi.
5. Code xong các logic đó rồi, thì cho chúng hoạt động được dưới dạng một server kiểu gì? Có cách nào cho file code *.php hoặc *.js luôn luôn chạy để listen, sau đó nếu có request đến thì execute hàm này, hàm nọ không? Có lệnh kiểu như "run main.php" hay "run main.js" không?
6. Nếu bước 5 là khả thi, thì ngoài việc nhét index.html/index.php vào /var/www/webCuaToi thì còn phải tống đống code server (viết bằng php/js) lên cái máy chủ nữa đúng không, sau đó cho file php/js đó luôn luôn chạy để listen, có request đến thì xử lý. Cơ bản như vậy là xong cái web?

Tóm lại, các bước ngắn như sau có đúng không:

0. Bật máy chủ
I. Đặt index.html/index.php vào /var/www/webCuaToi
II. Đặt file code chứa logic back end (viết bằng php hoặc js) vào đâu đó trên cùng con máy chứa thư mục /var/www/webCuatoi
III. Chạy lệnh "run main.php", hay "run main.js" gì đó để còn listen các request tới, cho chúng nó luôn luôn chạy
IV. Cắm máy ngày đêm liên tục
 
nói chung kiểu của chủ thớt là render ở client, client sẽ gửi request đến server backend, server backend trả data về, sau đó client dùng javascript để parse data và hiện thị lên trang web.
server backend này ko nhất thiết phải cùng 1 máy với server frontend (var/www/ ... nginx) .
mình ko chuyên về web nhưng có làm cái side project thì dùng docker-compose start 3 instance docker là frontend, backend và database. 3 cái này access với nhau qua network port
 
có 2 dạng render HTML
Client Side rendering -> server của thớt chỉ trả về data dạng json, ở browser của client sẽ parse cái data này rồi hiển thị
Server side rendering -> server của thớt sẽ trả thẳng về code html, css, js luôn

Chắc thớt nhầm lẫn chỗ này. Dù client side render hay server side render thì thớt cũng phải có 1 cái server chạy liên tục để host các file html, css, js. Server đó cũng có thể host luôn logic của backend.

thớt đọc thêm về kiến trúc client-server của tôi ở đây: Architectural Styles là gì - Các Architectural Styles phổ biến
 
Tôi đang hơi ngợ ngợ ông thớt đang phân vân giữa hai khái niệm coding backend (PHP, Nodejs, Ruby, Java...) và cách một web server (Apache, Apache Tomcat, Caddy, GlassFish, NGINX...) hoạt động.

Nếu đúng thế, có thể reply thì tôi sẽ nói thêm.
 
Tôi đang hơi ngợ ngợ ông thớt đang phân vân giữa hai khái niệm coding backend (PHP, Nodejs, Ruby, Java...) và cách một web server (Apache, Apache Tomcat, Caddy, GlassFish, NGINX...) hoạt động.

Nếu đúng thế, có thể reply thì tôi sẽ nói thêm.
thím nói thêm đi thím :beauty:
 
Theo tôi ông chưa nắm rõ cách hoạt động của web server, giao thức http… Tìm mấy tài liệu này đọc thôi.
 
bản chất nó là 1 thằng client gửi request đến 1 máy đóng vai trò server, trên máy server cài 1 ứng dụng luôn lắng nghe ở 1 port, sau đó sẽ phân tích request kia và đưa ra quyết định, cả web static hay dynamic thì vẫn cần 1 thằng đứng ra phân tích yêu cầu, còn việc sắp đặt thư mục blabla gì đó là quy định của thằng viết ra cái server, render server, render client gì gì đó thì cũng là quy định thôi :D
 
Tôi đang hơi ngợ ngợ ông thớt đang phân vân giữa hai khái niệm coding backend (PHP, Nodejs, Ruby, Java...) và cách một web server (Apache, Apache Tomcat, Caddy, GlassFish, NGINX...) hoạt động.

Nếu đúng thế, có thể reply thì tôi sẽ nói thêm.

Nhờ bạn nói thêm được không? trong tình cảnh không hiểu rõ mình đang phân vân gì mà đọc reply này lại thấy hợp lý thì chắc là đúng thế thật.
 
Nhờ bạn nói thêm được không? trong tình cảnh không hiểu rõ mình đang phân vân gì mà đọc reply này lại thấy hợp lý thì chắc là đúng thế thật.
Nếu ông biết tiếng Anh thì xem video này:

Sau đấy thì đọc tài liệu này:
https://www.zend.com/blog/php-serve...-zend-blog-php-server-basics&utm_content=blog

Họ giải thích rất rõ, còn không rành tiếng Anh để hiểu thì cũng nên xem và list ra những cái chưa rõ post lên đây tôi sẽ giải thích.

Hình ảnh cho trực quan:
1638776336684.png
 
Last edited:
nói chung kiểu của chủ thớt là render ở client, client sẽ gửi request đến server backend, server backend trả data về, sau đó client dùng javascript để parse data và hiện thị lên trang web.
server backend này ko nhất thiết phải cùng 1 máy với server frontend (var/www/ ... nginx) .
mình ko chuyên về web nhưng có làm cái side project thì dùng docker-compose start 3 instance docker là frontend, backend và database. 3 cái này access với nhau qua network port
cho em hỏi nếu làm FE thì phải bật cả 3 instance này lên. khi 1 ông BE push code mới lên bên FE pull về rồi phải build lại image của BE hả bác? :p :p
 
Back
Top