Tôi muốn biết làm thế nào để một chương trình máy chủ HTTP Apache phục vụ nhiều khách hàng kết nối với nó tại cùng một cổng 80? Tôi biết về cổng và ổ cắm. Tôi đã tìm kiếm rất nhiều trên internet về nó nhưng không thể tìm thấy câu trả lời giải thích đơn giản nhất. Nhiều câu trả lời đặt ra câu hỏi mới, như câu hỏi này:
Thông thường, đối với mọi máy khách kết nối, máy chủ sẽ tạo ra một tiến trình con giao tiếp với máy khách (TCP). Máy chủ mẹ trao cho con xử lý một ổ cắm được thiết lập để giao tiếp lại với máy khách. Khi bạn gửi dữ liệu đến một ổ cắm từ máy chủ con của bạn, ngăn xếp TCP trong HĐH sẽ tạo một gói trở về máy khách và đặt "từ cổng" thành 80. Nếu một máy chủ chỉ sử dụng một quy trình con duy nhất để phục vụ tất cả các socket sau đó máy chủ được gọi là một quy trình / luồng và nếu máy chủ sử dụng nhiều quy trình phụ để phục vụ mỗi socket theo một quy trình phụ thì máy chủ được gọi là máy chủ đa tiến trình / luồng. Lưu ý rằng không phân biệt loại máy chủ, máy chủ có thể / luôn luôn sử dụng cùng một ổ cắm ban đầu để phản hồi lại (không cần phân bổ cổng máy chủ khác).
Máy chủ HTTP Apache có đa luồng hay một luồng đơn không? Tôi đoán là nó là đa luồng.
Trong trường hợp kết nối liên tục, làm thế nào để máy khách liên lạc lại với con của nó? Có một bảng hoặc một cái gì đó được duy trì bởi quá trình cha mẹ để ánh xạ máy khách đến tiến trình con của nó? hoặc một quá trình con mới được tạo ra mọi lúc? Vòng đời của một quá trình trẻ em là gì?