Tìm kiếm:

Thứ Sáu, 12 tháng 7, 2013

Sự khác nhau giữa Client Side Programming và Server Side Programming.

Đối với những ai mới tiếp cận với lập trình Web thì việc nhận biết được sự khác nhau giữa lập trình phía Client và lập trình phía Server là điều rất quan trọng. Bài viết này hi vọng giúp cho các bạn có được một cái nhìn tổng quan về vấn đề trên.


Có một điểm chung là dù cho lập trình ở phía Client hay phía Server thì các lập trình viên sẽ sử dụng các ngôn ngữ kịch bản (scripting language) để tạo ra những xử lý. Các ngôn ngữ kịch bản cho phép máy tính tạo ra các phản hồi phức hợp để gửi đi trên mạng.

  • Client Side Programming: 
    • Những kịch bản xử lý được viết ở đây sẽ chạy một cách cục bộ trên trình duyệt và hệ điều hành trên máy tính của bạn. Ngôn ngữ kịch bản thông dụng để lập trình ở phía Client là JavaScript và máy tính của bạn cần phải có trình thông dịch của JavaScript  để có thể làm việc với những kịch bản này. 
    • Khi trình duyệt tải trang web xuống thì những kịch bản này cũng có thể đi theo như là một phần của trang web, nó giúp cho việc lướt web của bạn được cải thiện hơn. Ví dụ: trong quá trình xử lý tác vụ của bạn, trang web cần thực hiện một phép tính, thì kịch bản xử lý này sẽ thực hiện phép tính đó ngay trên máy tính của bạn thay vì phải gửi dữ liệu lên Server và ngồi chờ kết quả được trả về. 
    • Vấn đề của các kịch bản này đó là nó giới hạn trong việc xử lý (có nghĩa là chỉ có thể dùng cho một vài xử lý nhất định mà thôi) và phụ thuộc rất nhiều vào hệ điều hành và trình duyệt của máy người dùng. Bởi vì phát triển một Website liên quan tới người dùng với vô số tùy chọn về phần mềm  là rất khó khăn cho các lập trình viên có thể kiểm soát được những lỗi có thể phát sinh và  vấn đề tương thích với trình duyệt.
  • Server Side Programming: 
    • Những kịch bản xử lý ở phía này sẽ được thực thi trên máy Server và sẽ gửi trả kết quả về cho Client qua mạng. Các ngôn ngữ kịch bản thông dụng dùng để lập trình bên phía Server là: PHP, C#, VB.NET. Những kịch bản xử lý này giảm thiểu số lượng các lỗi cũng như vấn đề tương thích bởi vì những dòng mã trong kịch bản sẽ chạy trên một Server sử dụng một ngôn ngữ nhất định và một phần mềm hosting (lưu trữ Website) nhất định, do đó khi chọn Server để hosting website của bạn điều quan trọng là xem xét Server đó có được cài đặt sẵn và hỗ trợ ngôn ngữ mà bạn dùng hay không. 
    • Những kịch bản phía Server được dùng để truy cập những xử lý hoặc tài nguyên có trên Server, ví dụ như là cơ sở dữ liệu. Khi bạn muốn lấy truy cập dữ liệu của Server thì những yêu cầu của bạn sẽ được chuyển tới cho những kịch bản xử lý này để chúng thực hiện các truy vấn cơ sở dữ liệu và sẽ trả về cho trình duyệt của bạn kết quả của truy vấn đó. 
    • Ưu điểm lớn nhất của các kịch bản xử lý phía Server là sự bảo mật hơn hẳn các kịch bản ở Client. Ví dụ: khi bạn truy cập vào tài khoản ngân hàng trực tuyến, các kịch bản xử lý phía Server sẽ giao tiếp với Client bằng những thông điệp được mã hóa. Trong khi kịch bản phía Client chỉ là những văn bản đơn giản, chạy trên máy cục bộ. Bất cứ một "kẻ xấu" nào cũng có thể xem mã, nghe trộm và ăn cắp thông tin cá nhân từ máy tính của bạn. 
    • Một ưu điểm khác đáng chú ý về kịch bản xử lý phía Server đó là tính tương thích với các trình duyệt của người dùng. Đa số trình duyệt hiện nay cho phép người dùng "tắt" thực thi các kịch bản xử lý phía Client (ví dụ JavaScript) để ngăn chặn hacker tấn công, tuy nhiên chính điều này gây nên vấn đề cho các lập trình viên, những người muốn JavaScript chạy trên máy tính người dùng để ứng dụng Web của họ có thể được tải xuống hoàn toàn. Còn đối với kịch bản phía Server thì không hề có bất cứ sự giới hạn nào. 
    • Nhược điểm chủ yếu của kịch bản xử lý phía Server là tốn thời gian cũng như chi phí để nhận truy vấn từ người dùng. Thêm vào đó là các lỗi trong kịch bản có thể làm treo toàn bộ hế thống Server.
Tóm lại, với những ưu điểm và nhược điểm của hai loại kịch bản này mà hiện nay giải pháp được nhiều lập trình viên sử dụng đó là kết hợp cả hai cái, tận dụng những ưu điểm của từng loại và giảm thiểu tối đa những khuyết điểm của chúng.
Hi vọng bài viết này sẽ giúp ích cho các bạn!

3 nhận xét: