Tại sao HTML, CSS, JS thuần túy lại cần web server để chạy

  • Các bác cho em hỏi tại sao website tĩnh chỉ có mỗi 1 file HTML hoặc HTML + CSS + JS file cũng cần web server để chạy ạ? Web server có chức năng gì trong trường hợp này, em chỉ thấy nó có mỗi tác dụng lưu trữ file tĩnh này thôi, không compile gì cả. Và tại sao sử dụng web server nào cũng có thể deploy HTML (nginx, apache, litespeed, …).
  • Bản chất 1 HTTP request từ browser đến server, server response về document HTML có khác gì client download 1 file HTML rồi mở lên không?

Thanks ạ.

Cái này thì nên tìm đọc sách về World Wide Web. Nếu không đủ kiên nhẫn đọc sách thì lên trang w3.org có các đặc tả đầy đủ

Bạn nên đọc trên đó cho vững chứ hỏi vầy thì khó để anh em ở đây giải thích quá, hổng lẽ giờ mình ngồi lại viết hàng chục trang để trả lời cái mà có sẵn khắp trên mạng? Cảm thấy đuối. Hơn nữa, cách hỏi kiểu sơ khai này chỉ nên là học sinh tiểu học, lên cấp 2 là phải tự nghiên cứu được rồi. Bao năm nay Bộ Giáo dục hô hào “lấy học sinh làm trung tâm” mà sao càng ngày học sinh lại càng hỏi những câu mà họ dễ tìm trong tầm tay so với thế hệ cha anh?

Nếu còn ngại/ sợ tiếng Anh hoặc đọc tra từ điển mệt quá, thử Google xem WWW hoạt động như thế nào. Đọc xong, thấy mơ hồ chỗ nào, quay lại đây tiếp tục nhé.

6 Likes

chạy mà bạn nói ở đây là gì?

bạn mong đợi gì khác? bạn thấy cái này có vấn đề gì?

tới đây thì hỏi lại bạn, web server là gì?

5 Likes

Web server là một phần mềm phía server trong mô hình client-server tạo môi trường runtime để lưu trữ source code HTML, CSS, JS và các assets khác (image, video, …) Em chỉ giới hạn ở web server tĩnh thôi, em không đề cập tới chức năng render, compile java JSP, JSF, thymeleaf hay blazor của ASP,NET. Web server còn giúp web đang đặt trong nó tương tác được với client (trường hợp này là browser) qua mạng internet (cụ thể là HTTP protocol), web server còn find file trong máy tính server tương ứng đường dẫn URL mà client request, …

Nhưng em thắc mắc là lại sao mình không thể thuê một VPS, cài OS vào nó VD: windows rồi đặt file HTML đó vào một thư mục VD ổ D. Rồi cài đặt firewall như thế nào đó, mở port 80 để server này chấp nhận request HTTP từ máy tính khác rồi nó sẽ trả về file HTML này. Không có phần mềm nào khác làm được việc này ngoài web server ạ? Ví dụ giao thức FTP, SSH của linux, chương trình remote desktop của Windows hay những giao thức của Teamviewer, ultraview, … cũng cho phép cung cấp tài nguyên, truy cập, chia sẻ file với nhau đó mà đâu cần cài webserver apache, nginx gì đâu.

Chẳng lẻ bây giờ em có duy nhất một tấm ảnh png. Muốn chia sẻ nó public ra internet (end user truy cập bằng browser, không tính trường hợp mạng P2P, FTP, SSH, …) thì chỉ có cách cài web server cho máy tính phía server rồi bỏ ảnh vào đây thôi ạ?

2 Likes

bạn đang muốn một cái gì đó có chức năng của web server, nhưng lại không phải là web server
tại sao?
bạn đang đặt ra vấn đề khá vô lý

vậy thì bạn tự viết ra phầm mềm của riêng bạn đi, tất cả những cái trên bạn đã kể, đều là phải “cài” một cái gì đó khác

thậm chí bạn có thể viết ra một service nhỏ nhỏ, listen port 80, nhận và parse giao thức http rồi phản hồi lại theo ý bạn rồi đặt tên là “Wed server”, thế là máy của bạn không cần web server để chia sẻ hình qua giao thứ http nữa rồi

9 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?