
Written on 13th April 2026 by Carter Phan.
Đầu tiên client sẽ gửi request đến file index.php nó sẽ tải Composer autoload (dùng để khởi tạo các class mà không cần require/include các file chứa class đó. Đồng thời cũng kết nối với file boostrap để chạy ứng dụng
Tiếp theo, request sẽ được xử lý bởi kernel. Có hai loại kernel trong Laravel là HTTP kernel và Console kernel. Tùy thuộc vào loại request sẽ được gửi đến kernel nào. Hai kernel này đóng vai trò là vị trí trung tâm mà tất cả các request đều chạy qua. Bây giờ, chúng ta hãy chỉ tập trung vào HTTP kernel, nằm trong app / Http / Kernel.php.
HTTP Kernel kế thừa class Illuminate\Foundation\Http\Kernel, class này sẽ thực việc các công việc trước khi request được thực thi như cấu hình xử lý lỗi, cấu hình logger, xác định môi trường ứng dụng và một số công việc khác.
Một trong những công việc quan trọng nhất của HTTP Kernel đó chính là load các service provider. Tất cả các service provider được cấu hình trong file config/app.php. Quá trình load các service provider sẽ trải qua hai quá trình:
Sau khi hoàn tất load service provider, các request sẽ được gửi đến router. Công việc của router sẽ kiểm tra tất cả các route đã được khai báo trong các file ở thư mục routes so với request được gửi đến. Nếu khớp hoàn toàn với một route nào đó thì sẽ có hai hướng xử lý. Hãy quan sát mô hình ở phía trên, tại chốt chặn route có hai hướng rẽ:
Middleware sẽ xử lý logic theo những ràng buộc mà coder đặt ra để quyết định xem request đó có được đi tiếp hay là không.
Chẳng hạn như có một request với đường dẫn là http://localhost:8000/login, một coder muốn ràng buộc rằng nếu tồn tại session/cookie đăng nhập của client thì khi vào request này sẽ chuyển về trang chủ, còn nếu không thì vẫn hiển thị form đăng nhập để client tiếp tục. Đây là lúc sử dụng middleware để ràng buộc.
Có hai phương thức xử lý request đó chính là controller hoặc action (Closure object). Nhìn chung thì hai phương thức này đều hoạt động như nhau nhưng cách thể hiện và hiệu năng lại khác nhau.
Controller là thành phần của mô hình MVC nên về tối ưu và hiệu năng hơn hẳn action, rất dễ dàng quản lý và mở rộng.
Về Action thường dành cho những phương thức xử lý ngắn gọn như trả về một view, hay return một object, array... thường dành cho test hoặc trong quá trình học.
Khi route hoặc controller trả về một response, response sẽ truyền ngược ra ngoài thông qua middleware, tạo cơ hội cho ứng dụng sửa đổi hoặc kiểm tra response.
Cuối cùng, khi response qua middleware, phương thức handle của HTTP kernel sẽ trả về đối tượng response và tệp index.php gọi phương thức send
Có hai cách thức để trả về response:
View
View