Mục từ này đã đạt chất lượng ở mức sản phẩm bước đầu của Đề án Biên soạn Bách khoa toàn thư Việt Nam giai đoạn 1
Lập trình web

Lập trình web (tiếng Anh Web-based Programing, Web Programming) là tạo các ứng dụng hoạt động trên nền dịch vụ web (WWW) (xt. Ứng dụng trên nền web). So với các ứng dụng truyền thống khác, ứng dụng trên nền web không có gì khác biệt về nội dung tính toán hay xử lý dữ liệu theo những yêu cầu đã đặt ra với ứng dụng. Sự khác biệt đến từ việc nó hoạt động trên nền web: ứng dụng được cài đặt trên máy chạy trình phục vụ web, đầu vào và đầu ra của ứng dụng là những hoạt động tương tác với dịch vụ web. Vì vậy sự khác biệt trong lập trình ứng dụng web so với lập trình các ứng dụng truyền thống chính là việc lập trình tổ chức đầu vào và đầu ra. Thêm nữa do dịch vụ web hoạt động theo phiên nên việc lập trình web cũng phải chú ý đến điều này.

Toàn bộ giao diện đầu vào và đầu ra của ứng dụng web được tổ chức dưới dạng các siêu văn bản. Các siêu văn bản có thể được đóng gói trong nó các mô đun kịch bản chạy được trên trình duyệt web ở phía khách nên cũng xuất hiện khái niệm lập trình (các mô đun) phía phục vụ và phía khách; Dầu vậy, các khái niệm này chỉ có ý nghĩa phân biệt các mô đun chạy trên máy phục vụ và mô đun chạy trên máy khách, thực tế chúng đều được cài đặt trên máy phục vụ. Việc viết các mô đun chạy trên máy khách nằm trong việc viết đầu ra của ứng dụng. CSS vẫn đóng vai trò quan trọng trong việc trình bày các siêu văn bản.

Vì các mô đun chương trình đều được cài đặt trên máy tính phục vụ nên cũng xuất hiện các vấn đề lập trình từ xa và lập trình độc lập với nền tảng. Vấn đề lập trình từ xa có thể được giải quyết bởi các dịch vụ sử dụng máy tính từ xa như telnet, PuTTy, SCP hay SSH. Lập trình viên cũng có thể viết chương trình trên máy tính cá nhân rồi tải lên máy tính phục vụ qua các dịch vụ FTP hay SCP, SSH. Lập trình độc lập với nền tảng đề cập đến việc chương trình được viết ra có thể chạy trên bất cứ nền tảng hệ thống nào, trên các máy tính phục vụ có kiến trúc vật lý hay hệ điều hànhkhác nhau. Về logic, lập trình độc lập platform dường như không phải là một vấn đề cần đặt ra vì chương trình viết bằng ngôn ngữ nào thì cũng phải được chương trình dịch trên máy tính phục vụ dịch ra mã máy tương ứng. Tuy nhiên không phải ngôn ngữ lập trình nào cũng có chương trình dịch trên mọi nền tảng. Với những ngôn ngữ lập trình biên dịch, sau mỗi lần cập nhật, tải lên máy tính phục vụ, phải thực hiện công tác biên dịch ra mã máy trong khi các chương trình viết bằng ngôn ngữ thông dịch được tự động dịch khi được gọi thực hiện; nên với lập trình web, các ngôn ngữ lập trình thông dịch được dùng phổ biến hơn. Nhiều ngôn ngữ lập trình thông dịch đã được xây dựng hướng trực tiếp đến việc hỗ trợ lập trình web như Perl, PHP, ASP, … trong đó Perl, PHP hỗ trợ đủ mọi nền tảng khác nhau.

Với những ngôn ngữ lập trình không được xây dựng chuyên dụng cho lập trình web, như C/C++ chẳng hạn, khi lấy thông tin từ phía khách qua trình phục vụ web, phải thao tác trực tiếp với các biến môi trường – biến CGI, nên lập trình viên phải xây dựng thư viện công cụ riêng để hỗ trợ. Việc lập trình web trong các trường hợp này thường được gọi là lập trình CGI.

Với những ngôn ngữ lập trình được xây dựng cho lập trình web, tất cả các thông tin gửi về từ phía khách đều được phân tích tự động và lưu trữ sẵn trong các biến hệ thống. Việc hỗ trợ đóng gói đầu ra dưới dạng siêu văn bản được thực hiện đơn giản bằng cách cho phép trộn lẫn mã HTML với các dòng mã lệnh của ngôn ngữ lập trình đặt trong một cặp thẻ phân biệt. Cũng như vậy, các mô đun kịch bản chạy ở phía máy khách có thể trộn vào mỗi siêu văn bản theo cách đặt trong những cặp thẻ xác định.

Các mô đun kịch bản chạy ở phía client thường được xây dựng và đưa vào với những mục đích từ đơn giản như đưa ra thông báo xác nhận, chẳng hạn khi người dùng định xóa dữ liệu; kiểm tra lỗi logic về dữ liệu, chẳng hạn như với dữ liệu dạng ngày tháng; đến những xử lý phức tạp hơn là làm mới nội dung (hiển thị) của một đối tượng xác định trong siêu văn bản. Giá trị làm mới này có thể là kết quả xử lý dữ liệu ngay ở phía khách hay là kết quả xử lý của một mô đun chương trình ở phía máy phục vụ. Với những ứng dụng làm việc với khối lượng dữ liệu đồ sộ thì các kịch bản chạy ở phía máy khách đóng vai trò cực kỳ quan trọng vì việc thường xuyên tải lại khối lượng dữ liệu lớn từ phía máy phục vụ sẽ làm giảm hiệu suất của hệ thống. Vd., với các ứng dụng bản đồ, việc lập trình ứng dụng chủ yếu là xây dựng các kịch bản Javascript chạy ở phía máy khách.

Vì dịch vụ web hoạt động theo các phiên kết nối giữa máy khách và máy phục vụ nên việc quản lý, lưu trữ những dữ liệu có thể dùng xuyên suốt qua các phiên là vấn đề quan trọng, buộc phải chú ý. Những ngôn ngữ lập trình chuyên dụng cho lập trình web như PHP, ASP, … đều hỗ trợ các giải pháp session, cookie cho vấn đề này. Môi trường phát triển ứng dụng trên nền web ra đời cùng với sự ra đời của dịch vụ World Wide Web. Thời gian đầu khi chưa có ngôn ngữ lập trình chuyên dụng, việc lập trình ứng dụng trên môi trường này được gọi là lập trình CGI. Rất nhanh sau đó những ngôn ngữ lập trình chuyên dụng như PHP – một giải pháp mã nguồn mở (từ 1994 bởi Rasmus Lerdorf một lập trình viên người Đan Mạch sống và làm việc tại Canada), ASP – của Microsoft (từ 1996) đã làm cho lập trình web trên môi trường phát triển ứng dụng chuyên dụng nhanh chóng trở thành phổ biến. Tuy nhiên, nếu PHP hỗ trợ mọi nền tảng phần cứng, hệ điều hànhvà trình phục vụ web, thì ASP chỉ hoạt động trên trình phục vụ web IIS trong môi trường MS Windows.

Tài liệu tham khảo

  1. Shishir Gundavaram, CGI Programming on the World Wide Web, O'Reilly Media, 1996.
  2. Peter Kent, Netscape Javascript, Ventana Pr, Subsequent Edition (June 1, 1997).
  3. Steve Suehring, Janet Valade, PHP, MySQL®, JavaScript® & HTML5 All-in-One, John Wiley & Sons, Inc., 2013.
  4. John Gosney, ASP Programming, Premier Press, Inc., 2002.