Là phía máy chủ javascript hoặc phía máy khách

Chào mừng bạn đến với khóa học lập trình phía máy chủ dành cho người mới bắt đầu MDN. Trong bài viết đầu tiên này, chúng ta xem xét lập trình phía máy chủ từ cấp độ cao, trả lời các câu hỏi như "nó là gì?", "nó khác với lập trình phía máy khách như thế nào?" và "tại sao nó lại hữu ích như vậy?". Sau khi đọc bài viết này, bạn sẽ hiểu sức mạnh bổ sung có sẵn cho các trang web thông qua mã hóa phía máy chủ

điều kiện tiên quyết. Trình độ máy tính cơ bản. Hiểu cơ bản về máy chủ web là gì. Khách quan. Để làm quen với lập trình phía máy chủ là gì, nó có thể làm gì và nó khác với lập trình phía máy khách như thế nào

Hầu hết các trang web quy mô lớn sử dụng mã phía máy chủ để tự động hiển thị các dữ liệu khác nhau khi cần, thường được lấy ra khỏi cơ sở dữ liệu được lưu trữ trên máy chủ và gửi tới máy khách để hiển thị thông qua một số mã [e. g. HTML và JavaScript]

Có lẽ lợi ích đáng kể nhất của mã phía máy chủ là nó cho phép bạn điều chỉnh nội dung trang web cho người dùng cá nhân. Các trang web động có thể làm nổi bật nội dung phù hợp hơn dựa trên sở thích và thói quen của người dùng. Nó cũng có thể làm cho các trang web dễ sử dụng hơn bằng cách lưu trữ thông tin và tùy chọn cá nhân — ví dụ: sử dụng lại chi tiết thẻ tín dụng đã lưu trữ để hợp lý hóa các khoản thanh toán tiếp theo

Nó thậm chí có thể cho phép tương tác với người dùng của trang web, gửi thông báo và cập nhật qua email hoặc qua các kênh khác. Tất cả những khả năng này cho phép tương tác sâu hơn với người dùng

Trong thế giới phát triển web hiện đại, việc tìm hiểu về phát triển phía máy chủ rất được khuyến khích

Lập trình website phía máy chủ là gì?

Trình duyệt web giao tiếp với máy chủ web bằng Giao thức truyền siêu văn bản [HTTP]. Khi bạn nhấp vào một liên kết trên trang web, gửi biểu mẫu hoặc chạy tìm kiếm, một yêu cầu HTTP sẽ được gửi từ trình duyệt của bạn đến máy chủ mục tiêu

Yêu cầu bao gồm một URL xác định tài nguyên bị ảnh hưởng, một phương thức xác định hành động được yêu cầu [ví dụ: lấy, xóa hoặc đăng tài nguyên] và có thể bao gồm thông tin bổ sung được mã hóa trong các tham số URL [cặp giá trị trường được gửi qua truy vấn

Máy chủ web đợi thông báo yêu cầu của máy khách, xử lý chúng khi chúng đến và trả lời trình duyệt web bằng thông báo phản hồi HTTP. Phản hồi chứa một dòng trạng thái cho biết yêu cầu có thành công hay không [e. g. "HTTP/1. 1 200 OK" để thành công]

Phần thân của phản hồi thành công đối với yêu cầu sẽ chứa tài nguyên được yêu cầu [e. g. một trang HTML mới hoặc một hình ảnh], sau đó có thể được trình duyệt web hiển thị

trang web tĩnh

Sơ đồ bên dưới hiển thị kiến ​​trúc máy chủ web cơ bản cho một trang tĩnh [trang tĩnh là trang trả về cùng một nội dung được mã hóa cứng từ máy chủ bất cứ khi nào một tài nguyên cụ thể được yêu cầu]. Khi người dùng muốn điều hướng đến một trang, trình duyệt sẽ gửi yêu cầu HTTP "NHẬN" chỉ định URL của trang đó

Máy chủ truy xuất tài liệu được yêu cầu từ hệ thống tệp của nó và trả về phản hồi HTTP có chứa tài liệu và trạng thái thành công [thường là 200 OK]. Nếu không thể truy xuất tệp vì lý do nào đó, trạng thái lỗi sẽ được trả về [xem phản hồi lỗi máy khách và phản hồi lỗi máy chủ]

Trang web động

Trang web động là trang web mà một số nội dung phản hồi được tạo động, chỉ khi cần. Trên trang web động, các trang HTML thường được tạo bằng cách chèn dữ liệu từ cơ sở dữ liệu vào trình giữ chỗ trong các mẫu HTML [đây là cách lưu trữ lượng lớn nội dung hiệu quả hơn nhiều so với sử dụng trang web tĩnh]

Trang web động có thể trả về các dữ liệu khác nhau cho một URL dựa trên thông tin do người dùng cung cấp hoặc các tùy chọn được lưu trữ và có thể thực hiện các thao tác khác như một phần của việc trả về phản hồi [e. g. gửi thông báo]

Hầu hết mã để hỗ trợ một trang web động phải chạy trên máy chủ. Việc tạo mã này được gọi là "lập trình phía máy chủ" [hoặc đôi khi là "kịch bản back-end"]

Sơ đồ dưới đây cho thấy một kiến ​​trúc đơn giản cho một trang web động. Như trong sơ đồ trước, các trình duyệt gửi các yêu cầu HTTP đến máy chủ, sau đó máy chủ xử lý các yêu cầu và trả về các phản hồi HTTP thích hợp

Các yêu cầu đối với tài nguyên tĩnh được xử lý theo cách giống như đối với các trang web tĩnh [tài nguyên tĩnh là bất kỳ tệp nào không thay đổi — thông thường. CSS, JavaScript, Hình ảnh, tệp PDF được tạo sẵn, v.v. ]

Thay vào đó, các yêu cầu về tài nguyên động được chuyển tiếp [2] sang mã phía máy chủ [được hiển thị trong sơ đồ dưới dạng Ứng dụng web]. Đối với "yêu cầu động", máy chủ diễn giải yêu cầu, đọc thông tin được yêu cầu từ cơ sở dữ liệu [3], kết hợp dữ liệu đã truy xuất với các mẫu HTML [4] và gửi lại phản hồi chứa HTML đã tạo [5,6]

Lập trình phía máy chủ và phía máy khách có giống nhau không?

Bây giờ chúng ta hãy chú ý đến mã liên quan đến lập trình phía máy chủ và phía máy khách. Trong mỗi trường hợp, mã khác nhau đáng kể

  • Họ có mục đích và mối quan tâm khác nhau
  • Họ thường không sử dụng cùng một ngôn ngữ lập trình [ngoại trừ JavaScript, có thể được sử dụng ở phía máy chủ và phía máy khách]
  • Chúng chạy bên trong các môi trường hệ điều hành khác nhau

Mã chạy trong trình duyệt được gọi là mã phía máy khách và chủ yếu liên quan đến việc cải thiện giao diện và hành vi của trang web được hiển thị. Điều này bao gồm chọn và tạo kiểu cho các thành phần giao diện người dùng, tạo bố cục, điều hướng, xác thực biểu mẫu, v.v. Ngược lại, lập trình trang web phía máy chủ chủ yếu liên quan đến việc chọn nội dung nào được trả về trình duyệt để đáp ứng các yêu cầu. Mã phía máy chủ xử lý các tác vụ như xác thực dữ liệu và yêu cầu đã gửi, sử dụng cơ sở dữ liệu để lưu trữ và truy xuất dữ liệu và gửi dữ liệu chính xác đến máy khách theo yêu cầu

Mã phía máy khách được viết bằng HTML, CSS và JavaScript — mã này chạy bên trong trình duyệt web và có ít hoặc không có quyền truy cập vào hệ điều hành bên dưới [bao gồm cả quyền truy cập hạn chế vào hệ thống tệp]

Các nhà phát triển web không thể kiểm soát trình duyệt mà mọi người dùng có thể đang sử dụng để xem trang web — trình duyệt cung cấp mức độ tương thích không nhất quán với các tính năng mã phía máy khách và một phần thách thức của lập trình phía máy khách là xử lý sự khác biệt trong hỗ trợ trình duyệt một cách duyên dáng

Mã phía máy chủ có thể được viết bằng bất kỳ ngôn ngữ lập trình nào — ví dụ về các ngôn ngữ web phía máy chủ phổ biến bao gồm PHP, Python, Ruby, C# và JavaScript [NodeJS]. Mã phía máy chủ có toàn quyền truy cập vào hệ điều hành máy chủ và nhà phát triển có thể chọn ngôn ngữ lập trình [và phiên bản cụ thể] mà họ muốn sử dụng

Các nhà phát triển thường viết mã của họ bằng các khung web. Khung web là tập hợp các chức năng, đối tượng, quy tắc và các cấu trúc mã khác được thiết kế để giải quyết các vấn đề chung, tăng tốc độ phát triển và đơn giản hóa các loại nhiệm vụ khác nhau phải đối mặt trong một miền cụ thể

Một lần nữa, trong khi cả mã phía máy khách và máy chủ đều sử dụng các khung, các miền rất khác nhau và do đó, các khung cũng vậy. Các khung web phía máy khách đơn giản hóa các tác vụ bố cục và trình bày trong khi các khung web phía máy chủ cung cấp nhiều chức năng máy chủ web "phổ biến" mà bạn có thể phải tự thực hiện [e. g. hỗ trợ phiên, hỗ trợ người dùng và xác thực, truy cập cơ sở dữ liệu dễ dàng, thư viện tạo khuôn mẫu, v.v. ]

Ghi chú. Các khuôn khổ phía máy khách thường được sử dụng để giúp tăng tốc độ phát triển mã phía máy khách, nhưng bạn cũng có thể chọn viết tất cả mã bằng tay;

Ngược lại, bạn hầu như sẽ không bao giờ nghĩ đến việc viết thành phần phía máy chủ của ứng dụng web mà không có khung — triển khai một tính năng quan trọng như máy chủ HTTP thực sự khó thực hiện từ đầu trong Python, nhưng các khung web Python như Django cung cấp một

Bạn có thể làm gì ở phía máy chủ?

Lập trình phía máy chủ rất hữu ích vì nó cho phép chúng tôi cung cấp hiệu quả thông tin phù hợp với người dùng cá nhân và do đó tạo ra trải nghiệm người dùng tốt hơn nhiều

Các công ty như Amazon sử dụng lập trình phía máy chủ để tạo kết quả tìm kiếm cho sản phẩm, đưa ra đề xuất sản phẩm được nhắm mục tiêu dựa trên sở thích của khách hàng và thói quen mua hàng trước đó, đơn giản hóa việc mua hàng, v.v.

Các ngân hàng sử dụng lập trình phía máy chủ để lưu trữ thông tin tài khoản và chỉ cho phép người dùng được ủy quyền xem và thực hiện giao dịch. Các dịch vụ khác như Facebook, Twitter, Instagram và Wikipedia sử dụng lập trình phía máy chủ để đánh dấu, chia sẻ và kiểm soát quyền truy cập vào nội dung thú vị

Một số cách sử dụng và lợi ích phổ biến của lập trình phía máy chủ được liệt kê bên dưới. Bạn sẽ lưu ý rằng có một số chồng chéo

Lưu trữ và phân phối thông tin hiệu quả

Hãy tưởng tượng có bao nhiêu sản phẩm có sẵn trên Amazon và có bao nhiêu bài đăng đã được viết trên Facebook?

Thay vào đó, lập trình phía máy chủ cho phép chúng tôi lưu trữ thông tin trong cơ sở dữ liệu và tự động xây dựng và trả về HTML và các loại tệp khác [e. g. PDF, hình ảnh, v.v. ]. Cũng có thể trả về dữ liệu [JSON, XML, v.v. ] để hiển thị bằng các khung web phía máy khách thích hợp [điều này làm giảm gánh nặng xử lý trên máy chủ và lượng dữ liệu cần gửi]

Máy chủ không bị giới hạn trong việc gửi thông tin từ cơ sở dữ liệu và có thể trả về kết quả của các công cụ phần mềm hoặc dữ liệu từ các dịch vụ truyền thông. Nội dung thậm chí có thể được nhắm mục tiêu cho loại thiết bị khách đang nhận nội dung đó

Vì thông tin nằm trong cơ sở dữ liệu nên nó cũng có thể được chia sẻ và cập nhật dễ dàng hơn với các hệ thống kinh doanh khác [ví dụ: khi sản phẩm được bán trực tuyến hoặc tại cửa hàng, cửa hàng có thể cập nhật cơ sở dữ liệu hàng tồn kho của mình]

Ghi chú. Trí tưởng tượng của bạn không cần phải làm việc chăm chỉ để thấy lợi ích của mã phía máy chủ đối với việc lưu trữ và phân phối thông tin hiệu quả

  1. Truy cập Amazon hoặc một số trang thương mại điện tử khác
  2. Tìm kiếm một số từ khóa và lưu ý cách cấu trúc trang không thay đổi, mặc dù kết quả thay đổi
  3. Mở hai hoặc ba sản phẩm khác nhau. Lưu ý lại cách chúng có cấu trúc và bố cục chung, nhưng nội dung cho các sản phẩm khác nhau đã được lấy từ cơ sở dữ liệu

Đối với cụm từ tìm kiếm phổ biến [ví dụ: "cá"] bạn có thể thấy hàng triệu giá trị được trả về theo đúng nghĩa đen. Việc sử dụng cơ sở dữ liệu cho phép chúng được lưu trữ và chia sẻ một cách hiệu quả, đồng thời cho phép kiểm soát việc trình bày thông tin chỉ ở một nơi

Trải nghiệm người dùng tùy chỉnh

Máy chủ có thể lưu trữ và sử dụng thông tin về khách hàng để cung cấp trải nghiệm người dùng thuận tiện và phù hợp. Ví dụ: nhiều trang web lưu trữ thẻ tín dụng để không phải nhập lại thông tin chi tiết. Các trang web như Google Maps có thể sử dụng các vị trí đã lưu hoặc hiện tại để cung cấp thông tin định tuyến và lịch sử tìm kiếm hoặc du lịch để làm nổi bật các doanh nghiệp địa phương trong kết quả tìm kiếm

Phân tích sâu hơn về thói quen của người dùng có thể được sử dụng để dự đoán sở thích của họ và tùy chỉnh thêm các phản hồi và thông báo, ví dụ: cung cấp danh sách các địa điểm phổ biến hoặc đã truy cập trước đây mà bạn có thể muốn xem trên bản đồ

Ghi chú. Google Maps lưu lịch sử tìm kiếm và truy cập của bạn. Các vị trí được truy cập thường xuyên hoặc được tìm kiếm thường xuyên được đánh dấu nhiều hơn các vị trí khác

Kết quả tìm kiếm của Google được tối ưu hóa dựa trên các tìm kiếm trước đó

  1. Lên Google tìm kiếm
  2. Tìm kiếm "bóng đá"
  3. Bây giờ, hãy thử nhập "yêu thích" vào hộp tìm kiếm và quan sát các dự đoán tìm kiếm tự động hoàn thành

Trùng hợp?

Kiểm soát quyền truy cập vào nội dung

Lập trình phía máy chủ cho phép các trang web hạn chế quyền truy cập đối với người dùng được ủy quyền và chỉ cung cấp thông tin mà người dùng được phép xem

Các ví dụ trong thế giới thực bao gồm các trang web mạng xã hội cho phép người dùng xác định ai có thể xem nội dung họ đăng lên trang web và nội dung của họ xuất hiện trong nguồn cấp dữ liệu của họ

Ghi chú. Xem xét các ví dụ thực tế khác nơi quyền truy cập vào nội dung được kiểm soát. Ví dụ: bạn có thể thấy gì nếu truy cập trang web trực tuyến của ngân hàng?

Lưu trữ thông tin phiên/trạng thái

Lập trình phía máy chủ cho phép các nhà phát triển sử dụng các phiên - về cơ bản, một cơ chế cho phép máy chủ lưu trữ thông tin về người dùng hiện tại của một trang web và gửi các phản hồi khác nhau dựa trên thông tin đó

Ví dụ: điều này cho phép một trang web biết rằng người dùng đã đăng nhập trước đó và hiển thị liên kết đến email hoặc lịch sử đặt hàng của họ hoặc có thể lưu trạng thái của một trò chơi đơn giản để người dùng có thể truy cập lại trang web và tiếp tục.

Ghi chú. Ghé thăm một trang báo có mô hình đăng ký và mở một loạt các tab [e. g. Tuổi tác]. Tiếp tục truy cập trang web trong vài giờ/ngày. Cuối cùng, bạn sẽ bắt đầu được chuyển hướng đến các trang giải thích cách đăng ký và bạn sẽ không thể truy cập các bài báo. Thông tin này là một ví dụ về thông tin phiên được lưu trữ trong cookie

Thông báo và liên lạc

Máy chủ có thể gửi thông báo chung hoặc dành riêng cho người dùng thông qua chính trang web hoặc qua email, SMS, nhắn tin nhanh, hội thoại video hoặc các dịch vụ liên lạc khác

Một vài ví dụ bao gồm

  • Facebook và Twitter gửi email và tin nhắn SMS để thông báo cho bạn về các thông tin liên lạc mới
  • Amazon thường xuyên gửi e-mail đề xuất các sản phẩm tương tự như những sản phẩm đã mua hoặc đã xem mà bạn có thể quan tâm
  • Máy chủ web có thể gửi thông báo cảnh báo tới quản trị viên trang để cảnh báo họ về bộ nhớ thấp trên máy chủ hoặc hoạt động đáng ngờ của người dùng

Ghi chú. Loại thông báo phổ biến nhất là "xác nhận đăng ký". Chọn hầu hết mọi trang web lớn mà bạn quan tâm [Google, Amazon, Instagram, v.v. ] và tạo tài khoản mới bằng địa chỉ email của bạn. Bạn sẽ sớm nhận được email xác nhận đăng ký hoặc yêu cầu xác nhận để kích hoạt tài khoản của bạn

Phân tích dữ liệu

Một trang web có thể thu thập nhiều dữ liệu về người dùng. những gì họ tìm kiếm, những gì họ mua, những gì họ giới thiệu, họ ở lại trên mỗi trang trong bao lâu. Lập trình phía máy chủ có thể được sử dụng để tinh chỉnh phản hồi dựa trên phân tích dữ liệu này

Ví dụ: Amazon và Google đều quảng cáo sản phẩm dựa trên các tìm kiếm [và mua hàng] trước đó

Ghi chú. Nếu bạn là người dùng Facebook, hãy truy cập nguồn cấp dữ liệu chính của bạn và xem luồng bài đăng. Lưu ý rằng một số bài đăng không theo thứ tự số - đặc biệt, các bài đăng có nhiều lượt "thích" hơn thường có vị trí cao hơn trong danh sách so với các bài đăng gần đây hơn

Ngoài ra, hãy xem loại quảng cáo bạn đang được hiển thị — bạn có thể thấy quảng cáo cho những thứ bạn đã xem trên các trang web khác. Thuật toán của Facebook để làm nổi bật nội dung và quảng cáo có thể hơi bí ẩn, nhưng rõ ràng là nó phụ thuộc vào lượt thích và thói quen xem của bạn

Tóm lược

Xin chúc mừng, bạn đã đến cuối bài viết đầu tiên về lập trình phía máy chủ

Bây giờ bạn đã biết rằng mã phía máy chủ được chạy trên máy chủ web và vai trò chính của nó là kiểm soát thông tin nào được gửi tới người dùng [trong khi mã phía máy khách chủ yếu xử lý cấu trúc và cách trình bày dữ liệu đó cho người dùng]

Bạn cũng nên hiểu rằng nó hữu ích vì nó cho phép chúng tôi tạo các trang web cung cấp thông tin phù hợp với từng người dùng một cách hiệu quả và có ý tưởng hay về một số điều bạn có thể làm khi là lập trình viên phía máy chủ

Cuối cùng, bạn nên hiểu rằng mã phía máy chủ có thể được viết bằng một số ngôn ngữ lập trình và bạn nên sử dụng một khung web để làm cho toàn bộ quá trình dễ dàng hơn

Trong một bài viết trong tương lai, chúng tôi sẽ giúp bạn chọn khung web tốt nhất cho trang web đầu tiên của bạn. Ở đây chúng tôi sẽ đưa bạn qua các tương tác máy khách-máy chủ chính chỉ với một chút chi tiết

JavaScript có chạy trên máy khách không?

JavaScript là ngôn ngữ kịch bản thường chạy ở phía máy khách . Điều này có nghĩa là nó được thực thi trên máy tính của bạn chứ không phải trên máy chủ như một số ngôn ngữ khác. Khi bạn truy cập một trang web, mã JavaScript sẽ chạy trong trình duyệt web của bạn và cho phép những thứ như yếu tố tương tác hoặc nội dung động.

Sự khác biệt giữa khách hàng là gì

Phía máy khách có nghĩa là mã JavaScript được chạy trên máy khách, là trình duyệt. JavaScript phía máy chủ có nghĩa là mã được chạy trên máy chủ đang phục vụ các trang web .

Là máy chủ HTML

Mã nguồn được hiển thị cho người dùng. của phía máy chủ là một trang HTML. Chức năng chính của nó là cung cấp đầu ra được yêu cầu cho người dùng cuối

JavaScript có còn được gọi là máy khách không

Javascript được gọi là lập trình phía máy khách vì nó chạy trên máy chủ không có trên web. 2.

Chủ Đề