Chỉ mục thư mục máy chủ web

Article

July 5, 2022

Khi một máy khách HTTP (thường là một trình duyệt web) yêu cầu một URL trỏ đến cấu trúc thư mục thay vì một trang web thực sự trong cấu trúc thư mục, máy chủ web thường sẽ phân phát một trang mặc định, thường được gọi là trang chính hoặc " trang mục lục. Tên tệp chung cho một trang như vậy là index.html, nhưng hầu hết các máy chủ HTTP hiện đại đều cung cấp danh sách tên tệp có thể định cấu hình mà máy chủ có thể sử dụng làm chỉ mục. Nếu máy chủ được định cấu hình để hỗ trợ tập lệnh phía máy chủ, danh sách thường sẽ bao gồm các mục nhập cho phép nội dung động được sử dụng làm trang chỉ mục (ví dụ: index.cgi, index.pl, index.php, index.shtml, index.jsp, default.asp) mặc dù có thể thích hợp hơn nếu vẫn chỉ định đầu ra HTML (index.html.php hoặc index.html.aspx), vì điều này không nên được coi là đương nhiên. Một ví dụ là máy chủ web nguồn mở phổ biến Apache, trong đó danh sách tên tệp được kiểm soát bởi chỉ thị DirectoryIndex trong tệp cấu hình máy chủ chính hoặc trong tệp cấu hình cho thư mục đó. Có thể hoàn toàn không sử dụng phần mở rộng tệp và trung lập với các phương pháp phân phối nội dung và đặt máy chủ tự động chọn tệp tốt nhất thông qua thương lượng nội dung. Nếu máy chủ không thể tìm thấy tệp có bất kỳ tên nào được liệt kê trong cấu hình của nó, máy chủ có thể trả về lỗi (thường là 403 Index Listing Forbidden hoặc 404 Not Found) hoặc tạo trang chỉ mục của riêng nó liệt kê các tệp trong thư mục. Thông thường tùy chọn này, thường được đặt tên là autoindex, cũng có thể định cấu hình.

Lịch sử

Một lược đồ trong đó máy chủ web cung cấp tệp mặc định trên cơ sở mỗi thư mục con đã được hỗ trợ ngay từ NCSA HTTPd 0.3beta (ngày 22 tháng 4 năm 1993), mặc định cung cấp tệp index.html trong thư mục. Lược đồ này sau đó đã được CERN HTTPd thông qua ít nhất là 2.17beta (ngày 5 tháng 4 năm 1994), có hỗ trợ mặc định là Welcome.html và welcome.html ngoài index.html do NCSA tạo ra. Các máy chủ web sau này thường hỗ trợ lược đồ tệp mặc định này dưới hình thức này hay hình thức khác; điều này thường có thể định cấu hình, với index.html là một trong những tên tệp mặc định.

Thực hiện

Trong một số trường hợp, trang chủ của một trang web có thể là một menu tùy chọn ngôn ngữ cho các trang web lớn sử dụng nhắm mục tiêu theo địa lý. Cũng có thể tránh bước này, ví dụ, bằng cách sử dụng thương lượng nội dung. Trong trường hợp không tồn tại tệp chỉ mục. * Đã biết trong một thư mục nhất định, máy chủ web có thể được định cấu hình để cung cấp danh sách các tệp được tạo tự động trong thư mục thay thế. Ví dụ: với máy chủ web Apache, hành vi này được cung cấp bởi mô-đun mod_autoindex và được điều khiển bởi chỉ thị Tùy chọn + Chỉ mục trong tệp cấu hình máy chủ web. Các danh sách thư mục tự động này đôi khi là một rủi ro bảo mật vì chúng liệt kê các tệp nhạy cảm có thể không nhằm mục đích truy cập công khai, trong một quá trình được gọi là tấn công lập chỉ mục thư mục. Một cấu hình sai bảo mật như vậy cũng có thể hỗ trợ cho các cuộc tấn công khác, chẳng hạn như cuộc tấn công qua đường dẫn hoặc thư mục.

Màn trình diễn

Khi truy cập một thư mục, các phương pháp chỉ mục khả dụng khác nhau cũng có thể có tác động khác nhau đến việc sử dụng tài nguyên hệ điều hành (RAM, thời gian CPU, v.v.) và do đó đến hiệu suất của máy chủ web. Tiếp tục từ phương pháp nhanh nhất đến chậm nhất, đây là danh sách: bằng cách sử dụng tệp chỉ mục tĩnh, ví dụ: index.html, v.v.; sử dụng tính năng máy chủ web thường được đặt tên là autoindex (khi không tồn tại tệp chỉ mục) để máy chủ web tự động tạo danh sách thư mục bằng cách sử dụng mô-đun nội bộ của nó; sử dụng tệp thông dịch được đọc bởi trình thông dịch chương trình nội bộ của máy chủ web, ví dụ: index.php; sử dụng chương trình thực thi và biên dịch CGI, ví dụ: index.cgi.

Tài liệu tham khảo