Bài 2 - Quy trình xử lý tổng quát web PHP

Bạn thân mến trong "Bài 2 - Qúa trình hoạt động request, response khi truy cập 1 website" bạn đã tìm hiểu được quy trình tổng quát các bước xử lý khi người dùng truy cập vào website, tiếp theo đây mình sẽ chia sẻ cho bạn cụ thể hơn khi người dùng truy cập 1 website làm bằng ngôn ngữ lập trình PHP, hệ quản trị dữ liệu MySQL và phần mềm web server Apache (một chương trình được cài đặt trên máy chủ Server). 

Bước 1 - Khách hàng gửi một yêu cầu trang đến máy chủ web:

Quy trình xử lý web PHP

Như trên ảnh thì người dùng họ gửi 1 yêu cầu (request) đến file members.php để xử lý. Ví dụ đường dẫn (url) họ gõ trên trình duyệt Google Chrome như sau rồi ấn phím enter:

https://phpstep.com/members.php

thì lúc này Apache sẽ tiếp nhận yêu cầu và phân tích xem nên gọi file php nào để xử lý, trong trường hợp này Apache sẽ gọi đến file members.php để chạy. Lúc này các đoạn code được viết trong file này (thông thường trong 1 file php sẽ bao gồm cả code HTML, CSS, JS và code PHP "trộn" lại với nhau) sẽ được trình thông dịch thực thi.

Lưu ý: Trường hợp chỉ gõ địa chỉ domain "https://phpstep.com" thì Apache sẽ gọi mặc định 1 file có tên là index.php

Bước 2: Máy chủ web chuyển tiếp yêu cầu đó đến trình thông dịch PHP:

Quy trình xử lý web PHP

Bạn có thể xem lại "Bài 5 - Tìm hiểu trình biên dịch. So sánh thông dịch và biên dịch" để có kiến thức cơ bản về trình thông dịch PHP.

Bước 3: Bây giờ trình thông dịch PHP sẽ lấy dữ liệu (data) từ Cơ sở dữ liệu (database) và phản hồi nó trở lại máy chủ Web:

Quy trình xử lý web PHP

Lúc này PHP sẽ mở các kết nối đến database với các câu lệnh truy vấn SQL. Ví dụ câu lệnh sau được viết trong file members.php:

//Khai báo các cấu hình cần thiết để kết nối CSDL
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Tạo kết nối đến MySQL
$conn = new mysqli($servername, $username, $password, $dbname);

// Kiểm tra kết nối có lỗi hay không
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

//Khai báo câu lệnh SQL: câu lệnh dưới đây có nghĩa là "lấy tất cả bản ghi trong bảng MyMember, chỉ hiển thị các cột id, firstname, lastname"
$sql = "SELECT id, firstname, lastname FROM MyMember";
$result = $conn->query($sql);

// Hiển thị data bằng cách sử dụng vòng lặp while
if ($result->num_rows > 0) { 
  //lệnh if để check xem có tồn tại bản ghi nào hay không
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
";
  }
} else {
  echo "0 results";
}

//Cuối cùng là đóng kết nối CSDL
$conn->close(); 

Bước 4: Sau cùng máy chủ Web phản hồi (response) cho người dùng (client) đã yêu cầu trang:

Quy trình xử lý web PHP

Trong ví dụ trên thì trình duyệt sẽ nhận được dữ liệu là source code HTML chứa danh sách tất cả bản ghi nằm ở bảng MyMember và nhiệm vụ của trình duyệt là phân tích, sắp xếp, hiển thị source code HTML đó ra màn hình để người dùng nhìn thấy.

Kết luận:

Như vậy thông qua bài viết này bạn đã hiểu hơn về cách thức hoạt động của 1 website được xây dựng bằng PHP, MySQL. Việc hiểu cách thức hoạt động website sẽ giúp ích cho bạn rất nhiều, nhất là trong trường hợp web lỗi cần dò theo luồng hoạt động trên để fix lỗi.

Tác giả: Admin