Кто первым получает HTTP-запросы?
Apache, почти наверняка.Однако могут существовать процессы администрирования, которые общаются напрямую с Tomcat.
Как httpd узнает, когда перенаправлять запросы JSP на Tomcat или просто отвечать на сам запрос?
Из его конфигурации.Специфика будет отличаться.Например, он может использовать mod_jk
или mod_jk2
, и в этом случае вы найдете директивы JkMount
в файлах конфигурации, например:
JkMount /*.jsp ajp13_worker
..., которая сообщаетпередать запросы в корень сайта для файлов, соответствующих *.jsp
и ajp13_worker
, что определено в файле workers.properties
.
Или это может быть настроено в простом HTTP обратный прокси расположение.Или что-то еще.
Как httpd "передает" запрос и "получает" ответ от Tomcat?
Это зависит от конфигурации;это может быть HTTP, AJP или другой модуль.
Это просто "копирование-вставка" запроса / ответа на запроспорт Tomcat прослушивает?
Вроде.:-) См. Ссылку обратного прокси выше.
Существует ли какая-то межпроцессная связь на уровне ОС?
Да.AFAIK, все это основано на сокетах (а не, скажем, на разделяемой памяти), что означает (помимо прочего), что Tomcat и Apache не должны работать на одной машине.