Web (1) - Lời nói đầu - Tự học làm web

Lời nói đầu - Tự học làm web

[Xem video]

Câu hỏi đầu tiên xuất hiện trong đầu, khi bạn thực sự muốn bước chân vào lĩnh vực làm web là “muốn theo nghề làm web bắt đầu từ đâu?”.

Thực tế, bạn có thể bắt đầu theo nhiều cách, ví dụ:

– Cách một, học bài bản theo chương trình của một trường đại học, cao đẳng, hay trung tâm (tạm gọi là chương trình chính quy)

– Cách hai, tự học bằng cách kết hợp các chỉ dẫn, các bài học của rất nhiều thầy cô, anh chị trên mạng; cùng với các khóa học trực tuyến của các công ty, tổ chức, và cá nhân. Tạm gọi cách học thứ 2 này là học theo chương trình tự chế ––tự các bạn chế ra.

Học bài bản theo chương trình chính quy có một số đặc điểm sau:

– Bạn phải vượt qua được các kì thi đầu vào, các đợt xét tuyển của các trường đại học và cao đẳng

– Học theo chương trình được thiết kế sẵn của các trường

– Chương trình học khá bài bản và chi tiết, cho phép bạn có thể lựa chọn và theo đuổi nhiều ngành nghề khác nhau

– Bạn cần phải chi trả một khoản tiền khá lớn cho học phí, học liệu, ăn ở, và đi lại

– Cần thời gian khá dài theo đúng tiến độ đào tạo của các trường

– Có nhiều môn học khó; không phải là thế mạnh của bạn; hoặc bạn không thích, nhưng vẫn phải học

Trong phần tiếp theo (phần Tổng quan) sẽ trình bày cụ thể hơn về lộ trình học theo chương trình chính quy, để bạn có thêm một góc nhìn.

Tuy nhiên, nếu bạn không có nhiều tiền, nhưng có ý chí và muốn có một cái nghề; hoặc đơn giản bạn muốn tự tìm kiếm cho mình một con đường đi riêng thì bạn vẫn hoàn toàn có thế học được nghề làm web theo chương trình tự chế.

Để học theo chương trình tự chế, bạn cần phải chuẩn bị một cái máy tính; một ít chi phí để mua các khóa học, tài liệu; nếu tính toán hợp lý, thì chi phí này bằng khoảng một tháng lương thử việc của các bạn lập trình viên. Chi phí lớn nhất chính là thời gian, ý chí và quyết tâm của bạn. Tài liệu này được viết cho các bạn học theo kiểu tự chế. Mời bạn cùng trải nghiệm.

Để có thể làm web, bạn cần đạt được các điều sau:

– Nắm được các kiến thức cơ bản, cần thiết, để tạo ra sản phẩm; làm cơ sở giúp bạn học được các chủ đề nâng cao

– Học kiến thức một cách bài bản, có “lớp lang”, để trả lời được các câu hỏi “tại sao lại làm như thế?”. Thực tế có nhiều bạn biết làm nhưng không biết tại sao lại làm như vậy.

– Kỹ năng làm ra sản phẩm, làm nhiều thì sẽ quen, làm các sản phẩm từ dễ đến khó

– Kỹ năng tự học, tự đọc tài liệu (tiếng Việt, Anh) để có kiến thức áp dụng vào thực tế

– Thái độ đúng đắn khi làm nghề: yêu nghề, có đạo đức nghề nghiệp, tính kỉ luật, tinh thần trách nhiệm, khiêm tốn, không ngừng học hỏi

 “TỰ HỌC LÀM WEB, Tập 1 – HTML” là cuốn sách đầu tiên trong loạt các bài học giúp bạn có thể tự tin bước vào nghề. Sách được viết theo kiểu dẫn dắt từng bước, bắt đầu với các kiến thức lý thuyết căn bản, đây được xem như những viên gạch nền móng, từ đó người học sẽ dễ dàng tiếp cận các kiến thức sâu hơn, khó hơn; tiếp đến có thể tự tìm tòi và thử nghiệm kiến thức đã biết vào việc tạo ra sản phẩm.

Tiếp sau phần kiến thức căn bản, tài liệu cũng cung cấp các từ khóa, liên kết tới các trang web, sách điện tử (ebook), và video khác trên mạng để bạn tự tìm hiểu, tự thực hành thêm, giúp bạn có thêm nhiều góc nhìn, nhiều thông tin và nhiều trải nghiệm hơn. Sau khi đã có những hiểu biết cơ bản về một chủ đề, tài liệu sẽ cung cấp các bài tập và bài thực hành nhằm giúp người đọc hiểu rõ hơn lý thuyết, từng bước nâng cao kỹ năng thực hành, có thể tạo ra các sản phẩm.

Ngoài ra, sách cũng có các bài tập, câu hỏi bằng tiếng Anh, giúp người đọc từng bước làm quen, để tiến tới sẽ đọc và làm việc với các tài liệu hoàn toàn bằng tiếng Anh. Bạn có thể sử dụng danh mục các từ tiếng Anh chuyên ngành tại đây: https://bit.ly/3iLYpgG.

Cuối mỗi phần sẽ có các câu hỏi trắc nghiệm, giúp người học hệ thống và củng cố lại kiến thức. Các bạn cũng sẽ tìm thấy liên kết đến các video bài giảng, hướng dẫn làm bài tập và thực hành ứng với mỗi chủ đề trên Youtube.

Nội dung của cuốn sách này:

– Giới thiệu một số chủ đề về chọn nghề, học làm nghề và phương pháp học

– Kiến thức căn bản về web, trình duyệt, URL, siêu liên kết, siêu văn bản

– Kiến thức tổng quan về HTML

– Cách hiển thị văn bản

– Tìm hiểu về liên kết

– Hiển thị hình ảnh

– Thiết kế form

– Nhúng nội dung vào trang web

– Các chủ đề mở rộng liên quan đến HTML.

Đây là cuốn sách đầu tiên trong loạt các cuốn sách tự học làm web. Cuốn sách tiếp theo bạn nên có là “TỰ HỌC LÀM WEB, Tập 2 – CSS”.

Dù đã cố gắng, nhưng tài liệu này chắc chắn còn hạn chế về kiến thức, kĩ năng, nhận định. Mong bạn luôn đọc trong tâm thế hoài nghi.

[Xem video]

-------

Cập nhật: 3/1/2024
-------
Tải tài liệu đầy đủ: Tự học HTML
------

Web back-end (8) - Biến và Phương thức POST

Video bài học [https://youtu.be/_aiZWV_zVnA]

1.1       Biến và Phương thức POST

1.1.1       Biến

Trong lập trình, biến (variable) là một vị trí lưu trữ trừu tượng được gắn với một cái tên, nó có thể chứa giá trị hoặc chưa có giá trị. Có thể hiểu đơn giản hơn, biến là một thùng chứa (vùng nhớ) được đặt tên, dùng để chứa các bit thông tin hoặc các loại dữ liệu khác nhau (như số nguyên, số thực, chuỗi,…v.v.). Ngôn ngữ lập trình sẽ sử dụng tên biến để tham chiếu và thao tác với giá trị đang được lưu trữ trong biến. Giá trị trong biến có thể thay đổi trong quá trình thực thi chương trình. Biến chỉ là nơi lưu trữ dữ liệu tạm thời khi chương trình đang thực thi. Xem hình minh họa,


Khai báo biến trong PHP

PHP là ngôn ngữ định kiểu yếu hay định kiểu động, nghĩa là bạn không phải xác định kiểu của biến lúc khai báo. Kiểu dữ liệu của biến sẽ được xác định dựa vào giá trị thực tế mà chúng ta gán cho biến. Một biến không nhất thiết luôn luôn chứa một kiểu dữ liệu cố định mà nó có thể chứa nhiều loại dữ liệu khác nhau, ví dụ bạn có thể gán một số nguyên vào biến, ngay sau đó lại có thể gán một chuỗi vào chính biến đó. Sử dụng dấu bằng (=) để gán giá trị cho biến.

Để thực hành các đoạn mã, nhằm hiểu rõ hơn cách hoạt động của PHP mà không ảnh hưởng tới phần xử lý “form đặt mua sách”, bạn nên tạo thêm tập tin khác để viết mã. Ví dụ trong thư mục sach, sẽ tạo thêm tập tin test.php để kiểm tra, khi đó bạn chỉ việc nhập đoạn mã PHP vào tập tin mã nguồn, lưu lại, sau đó vào trình duyệt nhập đường dẫn http://sach.vn/test.php để xem kết quả.

Ví dụ sau minh họa việc khai báo biến, gán giá trị cho biến và biến có thể nhận nhiều kiểu giá trị khác nhau:

<?php

    $HTMLsoLuong = 5;

    echo $HTMLsoLuong . "<br>";

    $HTMLsoLuong = "năm";

    echo $HTMLsoLuong;

// kết quả là:

// 5

// năm

?>

Quy ước đặt tên biến

– Một biến luôn bắt đầu bằng kí hiệu $, sau đó là tên biến

– Tên biến phải bắt đầu bằng một chữ cái hoặc kí tự gạch dưới (_) (underscore), sau đó có thể là kí tự, kí số hoặc kí tự gạch dưới

– Tên biến có phân biệt chữ hoa và chữ thường, ví dụ biến $soLuong khác với $SoLuong

­– Tên biến không chứa khoảng trắng

Bạn phải đặt tên biến theo các quy ước và lựa chọn một phong cách đặt tên biến cho bản thân. Một số kiểu đặt tên biến mà bạn có thể tham khảo và học theo: camelCase, underscore, PascalCase. Chi tiết kiểu đặt tên biến theo camelCase: nếu biến gồm một chữ thì viết thường toàn bộ; nếu biến gồm nhiều chữ thì viết thường toàn bộ chữ đầu tiên, các chữ tiếp theo sẽ viết hoa chữ cái đầu tiên, ví dụ $so, $soLuong, $tienThanhToan.

Kiểm tra biến có tồn tại hay không?

Trong PHP, khi nào cần sử dụng đến một biến thì sẽ vừa khai báo và vừa gán giá trị cho nó trong một câu lệnh. Việc này sẽ tạo cho chúng ta cảm giác là không có thao tác khai báo biến mà chỉ có thao tác gán giá trị cho biến hoặc thay đổi giá trị của biến. Một câu hỏi hay được đặt ra là “không biết biến này đã có ở đâu đó trong chương trình hay chưa?”. Xem ví dụ:

    // khai báo biến

    $HTMLsoLuong = 5;

    echo $HTMLsoLuong;

    // thay đổi giá trị của biến

    $HTMLsoLuong = 7;

    echo "<br>" . $HTMLsoLuong;

    // kết quả là:

    // 5

    // 7

Khi chỉ khai báo biến mà không gán giá trị, thì PHP sẽ cảnh báo là biến chưa được định nghĩa (undefined variable). PHP không bắt buộc phải khởi tạo giá trị cho biến, tuy nhiên chúng ta nên thực hiện điều này, vì nếu không, giá trị mặc định trong biến sẽ được xác định tùy theo ngữ cảnh sử dụng, và nó sẽ nằm ngoài tầm kiểm soát của chúng ta. Kinh nghiệm là: luôn luôn gán giá trị cho biến khi sử dụng (tạm quên và không quan tâm tới động tác khai báo). Ví dụ:

// không nên chỉ khai báo biến mà không khởi tạo giá trị 

$HTMLsoLuong;

    echo $HTMLsoLuong;

    // kết quả là:

    // Warning: Undefined variable $HTMLsoLuong in C:\Apache24\htdocs\sach\test.php on line 3

 

// nên khởi tạo giá trị cho biến khi sử dụng

    $tongTien = 100;

    echo $tongTien;

 

Hàm isset()

Chúng ta có thể sử dụng hàm isset() để kiểm tra xem một biến đã sẵn sàng để sử dụng hay chưa, nghĩa là nó đã được khai báo và được gán giá trị (khác null) hay chưa.

Hàm isset() là hàm có sẵn của PHP, nó trả về giá trị true nếu biến đã sẵn sàng để sử dụng, trả về null nếu biến chưa sẵn sàng để sử dụng (xem như không tồn tại). Ví dụ:

    if(isset($HTMLsoLuong) == null)

        echo "biến chưa tồn tại";

    $tongTien = 100;

    echo "<br>" . $tongTien;

    // kết quả:

    // biến chưa tồn tại

    // 100

Chúng ta có thể xóa một biến bằng cách dùng hàm unset() hoặc gán giá trị cho nó là null.

Ngoài hàm isset(), chúng ta có thể sử dụng hàm is_null() để kiểm tra một biến đã tồn tại hay chưa. Hàm is_null() trả về giá trị true nếu biến không tồn tại và trả về false nếu tồn tại.

if(is_null($HTMLsoLuong))

        echo "biến HTMLsoLuong chưa tồn tại";

    $tongTien = 100;

    if(!is_null($tongTien))

        echo "<br>" . "biến tongTien đã có";

    // kết quả:

    // Warning: Undefined variable $HTMLsoLuong in C:\Apache24\htdocs\sach\test.php on line 2

    // biến HTMLsoLuong chưa tồn tại

    // biến tongTien đã có

Để chương trình chạy an toàn, trước khi thao tác với một biến, bằng cách nào đó chúng ta cần đảm bảo biến đó đã tồn tại.

Phạm vi của biến

Phạm vi (scope) trong ngôn ngữ lập trình là một khái niệm dùng để xác định một vùng của chương trình máy tính, mà trong đó, biến có tồn tại và có thể tham chiếu tới nó để thực hiện các thao tác.

Trong PHP có 6 loại phạm vi sau:

– Biến siêu toàn cục của hệ thống (built-in superglobal): có phạm vi trong toàn bộ tập tin mã nguồn

– Hằng (constant): khi đã được khai báo sẽ có phạm vi toàn cục (global), có thể sử dụng ở trong và ngoài các hàm

– Toàn cục (global): là biến được khai báo trong một tập tin mã nguồn, có thể sử dụng trong toàn bộ tập tin, trừ trong các hàm.

– Biến được tạo ở trong hàm và được khai báo là toàn cục thì có thể tham chiếu tới các biến toàn cục cùng tên.

– Biến được tạo ở trong hàm, được khai báo là static thì không cho bên ngoài truy cập, nhưng giữ được giá trị giữa lần chạy đầu tiên (của hàm) và lần kế tiếp

– Biến được tạo ở trong hàm: có phạm vi cục bộ đối với hàm đó và bị hủy sau khi hàm thực thi xong

Chúng ta sẽ tìm hiểu kĩ hơn về các loại phạm vi của hàm ở các phần sau.

1.1.2       Làm quen với phương thức POST

Quay trở lại ứng dụng website bán sách, sau khi người dùng nhập số cuốn sách họ muốn mua, bấm nút “Đặt mua”, dữ liệu từ form sẽ được trình duyệt gửi về web server bằng phương thức POST của giao thức HTTP.

Phương thức POST sẽ tạo một gói tin, gọi là gói POST request, trong đó có chứa các cặp name:value là giá trị của các input tương ứng. Ví dụ: HTMLsoLuong: 1; CSSsoLuong: 2; JSsoLuong: 3

Chúng ta có thể kiểm tra thông tin các cặp name:value này để đảm bảo dữ liệu của form gửi về web server là chính xác. Cách thực hiện:

– Mở trang http://sach.vn/orderform.html

– Nhập vào số lượng các cuốn sách cần mua, ví dụ: 1 cuốn HTML, 2 cuốn CSS, 3 cuốn JavaScript ; bấm nút "Đặt mua"

– Đường dẫn trên trình duyệt lúc này sẽ là http://sach.vn/processorder.php. Nghĩa là dữ liệu của form đã được gửi về web server, đã được web server xử lý và trả về trang kết quả.

– Để xem các dữ liệu của form gửi về web server, bạn mở Developer tools/ chọn tab Network/ trong khung cửa sổ của Developer tools, chọn tập tin processorder.php/ chọn tab Payload, tại khung Form Data, bạn sẽ thấy các cặp name:value gửi về web server. Bạn cũng có thể bấm vào mục "view source" ngay bên cạnh, để xem các cặp name:value ở định dạng khác, ví dụ:  "HTMLsoLuong=1&CSSsoLuong=2&JSsoLuong=3". Xem hình minh họa,


Payload (khối hàng)

Payload là phần dữ liệu của một gói tin. Khi truyền trên mạng, một gói tin gồm 2 phần: header và payload, phần header chứa các thông tin điều khiển giúp truyền gói tin đến được đích, phần payload chứa dữ liệu mà một gói tin chuyên chở từ máy nguồn tới máy đích.

Xử lý form tại web server

Như chỉ định tại trường action trong form (action="processorder.php" ), dữ liệu của form sẽ được gửi tới trang processorder.php của website. Tại trang processorder.php, chúng ta sẽ viết mã để xử lý dữ liệu nhận được.

PHP có nhiều cách để nhận dữ liệu từ form gửi về. Ví dụ, form của chúng ta đang lập trình có khai báo là “method=POST”, nghĩa là bên server sử dụng phương thức POST để nhận dữ liệu. Trong trường hợp này, PHP sẽ sử dụng một biến “siêu toàn cục” (superglobal), kiểu mảng, có tên là $_POST. Mảng $_POST lấy name làm chỉ mục và giá trị là value từ các cặp name:value. Ví dụ: 

$_POST[‘HTMLsoLuong’] = 1

$_POST[‘CSSsoLuong’] = 2

$_POST[‘JSsoLuong’] = 3

Ngoài mảng $_POST, PHP còn dùng 2 mảng khác để nhận dữ liệu từ form là $_GET và $_REQUEST.

Chúng ta sẽ viết đoạn mã kiểm tra xem phần tử mảng tại vị trí “name” đã có giá trị chưa, nếu có rồi thì lấy ra, lưu vào một biến khác để thực hiện các xử lý tiếp theo.

Với đoạn mã PHP đơn thuần là tính toán, hoặc xuất ra thông tin đơn giản thì bạn để nó ở trước, hay ở sau thẻ <html>, hoặc ở các vị trí khác đều không ảnh hưởng gì đến kết quả thực thi. Do vậy, bạn nên để nó ở trên đầu tập tin, giúp dễ tìm kiếm và thao tác.

Bạn sẽ tạo ra 3 biến $HTMLsoLuong, $CSSsoLuong$JSsoLuong để chứa các thông tin do form gửi lên từ web client. Hãy thêm đoạn mã sau vào đầu tập tin processorder.php.

<?php

    $HTMLsoLuong = $_POST['HTMLsoLuong'];

    $CSSsoLuong = $_POST['CSSsoLuong'];

    $JSsoLuong = $_POST['JSsoLuong'];

?>

Tới đây, chúng ta đã có thể xuất các thông ra giao diện trang web, bằng cách thêm đoạn mã sau vào phía dưới dòng mã [echo "<p>Đơn hàng đã được xử lý</p>";],

...

        echo "<p>Chi tiết đơn hàng của bạn:</p>";

        echo $HTMLsoLuong . " cuốn HTML";

        echo "<br>" . $CSSsoLuong . " cuốn CSS";

        echo "<br>" . $JSsoLuong . " cuốn JavaScript";

      ...

Lưu lại các trang mã nguồn, chạy lại trang web, chúng ta sẽ thấy kết quả xuất hiện trên trình duyệt như dưới đây:

[Kết quả trang http://sach.vn/processorder.php]

Cửa hàng sách

Các đơn hàng

Đơn hàng đã được xử lý vào lúc 01:49, 1st December 2021

 

Chi tiết đơn hàng của bạn:

 

1 cuốn HTML

2 cuốn CSS

3 cuốn JavaScript

Ở phần xử lý trên, phía web server đã nhận trực tiếp dữ liệu từ các input của form, rồi xuất ngay về trình duyệt. Cách làm này tiềm ẩn nhiều rủi ro liên quan đến bảo mật. Thực tế, chúng ta cần sử dụng PHP để kiểm tra (validation) và lọc (filter) dữ liệu đầu vào, nhằm đảm bảo dữ liệu hợp lệ, an toàn. Với một chương trình PHP, dữ liệu đầu vào có thể là dữ liệu được gửi từ form, từ cookie, từ dịch vụ web, hoặc từ cơ sở dữ liệu.

Tạm thời, do chưa tìm hiểu về kiểm tra và lọc dữ liệu đầu vào, nên trước khi xuất dữ liệu, chúng ta sẽ sử dụng hàm htmlspecialchars() của PHP để chuyển đổi các kí tự đặc biệt trong dữ liệu đầu vào thành thực thể HTML (HTML entity). Mục đích của việc này là ngăn chặn việc gửi các thẻ (nằm ngoài kiểm soát của lập trình viên) có khả năng thực thi các đoạn mã độc về trình duyệt, gây ảnh hưởng đến việc thực thi, sự an toàn của ứng dụng và người dùng.

Khi đó, đoạn mã xuất dữ liệu nên được sửa lại là:

        ...

        echo "<p>Chi tiết đơn hàng của bạn:</p>";

        echo htmlspecialchars($HTMLsoLuong) . " cuốn HTML";

        echo "<br>" . htmlspecialchars($CSSsoLuong) . " cuốn CSS";

        echo "<br>" . htmlspecialchars($JSsoLuong) . " cuốn JavaScript";

        ...

1.1.3       Xem và đọc thêm

– [1] Dùng các từ khóa sau, tìm kiếm trên mạng để đọc thêm: payload, POST request, PHP variable

– [2] Đọc thêm về biến: https://www.php.net/manual/en/language.variables.basics.php

– [3] Ebook: Luke Welling & Laura Thomson, PHP and MySQL web development, fifth edition, 2017, page 20 – 26

– [4] htmlspecialchars(): https://www.php.net/manual/en/function.htmlspecialchars.php

– [5] Bài tập: https://www.w3resource.com/php-exercises/php-basic-exercise-3.php

– [6] Syntax and variables: https://www.youtube.com/watch?v=t0syDUSbdfE&t=1077s

1.1.4       Bài tập và thực hành

Bài tập 1. Cài đặt chức năng nhận dữ liệu từ form gửi tới web server và xuất dữ liệu ngược về trình duyệt (đã trình bày ở phần lý thuyết).

Bài tập 2. $var = 'PHP Tutorial'. Put this variable into the title section, h3 tag and as an anchor text within an HTML document.

[Sample Output] :

PHP Tutorial

PHP, an acronym for Hypertext Preprocessor, is a widely-used open source general-purpose scripting language. It is a cross-platform, HTML embedded server-side scripting language and is especially suited for web development.

Go to the PHP Tutorial.

Bài tập 3. Create a simple HTML form and accept the user name and display the name through PHP echo statement.

[Sample output of the HTML form]


Hướng dẫn làm bài tập và thực hành

[Bài tập 2]

<?php

$var = 'PHP Tutorial';

?>

<!DOCTYPE html>

<html>

<head>

  <meta http-equiv="content-type" content="text/html; charset=utf-8">

  <title><?php echo $var; ?> - W3resource!</title>

  </head>

  <body>

  <h3><?php echo $var; ?></h3>

  <p>PHP, an acronym for Hypertext Preprocessor, is a widely-used open source general-purpose scripting language. It is a cross-platform, HTML embedded server-side scripting language and is especially suited for web development.</p>

  <p><a href="https://www.w3resource.com/php/php-home.php">Go to the <?php echo $var; ?></a>.</p>

</body>

</html>

[Bài tập 3]

<!DOCTYPE html>

<html>

<head>

   <title></title>

   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

   </head>

   <body>

   <form method='POST'>

   <h2>Please input your name:</h2>

 <input type="text" name="name">

 <input type="submit" value="Submit Name">

 </form>

<?php

//Retrieve name from query string and store to a local variable

$name = $_POST['name'];

echo "<h3> Hello $name </h3>";

?>

</body>

</html>

1.1.5       Câu hỏi ôn tập

Câu 1. Khai báo nào sau đây là hợp lệ?

A. $5soLuong =5;

B. $_5soLuong = 6;

C. soLuong = 7;

D. $so Luong = 8;

Câu 2. Phát biểu nào sau đây không đúng khi nói về biến trong PHP?

A. Không cần xác định kiểu khi khai báo biến

B. Là một vùng nhớ được đặt tên, dùng để lưu trữ tạm thời các giá trị

C. Một biến chỉ được chứa một loại dữ liệu duy nhất

D. Một biến luôn bắt đầu bằng kí hiệu $

Câu 3. Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or ______, followed by any number of letters, numbers, or underscores.

A. hyphen

B. number

C. dollar sign

D. underscore

Câu 4. Trong PHP, bạn có thể sử dụng các mảng sau để nhận giá trị gửi từ form tới. Chọn đáp án đúng nhất.

A. POST, GET, REQUEST

B. $_POST, $_GET, $_REQUEST

C. $_POST, $_GET

D. $_POST, $_REQUEST

Câu 5. Trong quá trình gửi dữ liệu giữa client-server, khái niệm “payload” được hiểu là?

A. Phần chứa dữ liệu mà một gói tin chuyên chở từ máy nguồn tới máy đích

B. Thời gian để tải một trang web

C. Kích thước của một đơn vị dữ liệu gửi đi

D. Thời gian cần thiết để gửi một gói tin từ nguồn tới đích

-----

Video bài học [https://youtu.be/_aiZWV_zVnA]

-----

Cập nhật: 13/9/2023

-----

Bạn muốn tự học HTML bài bản? Xem thêm