Funcionamento de um servidor+container

Boa tarde pessoal, to estudando servlet e jsp porém surgiram algumas dúvidas de como funcionar a solicitação do usuario e a resposta do container.

Vou colocar os passos de como eu compreendi tal funcionamento e vcs me corrigem se
eu equivocar.

  1. usuário faz a solicitação e passa um http + url ao servidor.
  2. o servidor passa pro container que localiza a html retornando ao usuário.
  3. o usuário usa (no caso) um form da html e retorna a solicitação novamente ao servidor que por sua vez passa pro container.
  4. o CONTAINER CRIA dois objetos HttpServletRequest e HttpServletResponse.

–Agora eu ja começo a me confundir se eu jáo não me confundo antes…—

4.1 é criado uma Thread. <<não entendi o porque, será pelo fato de termos uma aplicação web, podemos ter várias requisições ao mesmo tempo?>>
5. O container passa a URL HTTP para o objeto HttpServletRequest, e tambem encontra o servlet baseado na URL.
6. o container chama o método service(HttpServletRequest request, HttpServletResponse response) do servlet passando o tal do objeto criado HttpServletRequest como argumento. <<OBS: não entendi: se o metodo service() espera 2 argumentos, o container passou apenas o obj HttpServletRequest com referencia e o outro HttpServletResponse esta nulo ou oque?>>
7. service() chama o método que foi implementado doGet() ou doPost() ou outro()… passando novamente as referencias para seus argumentos.
8. vamos conciderar doPost(). doPost() retorna um obj response com os valores novos para o container que retorna a pagina dinamica encapsulada como HTTP ao cliente.

Muitas duvidas. As vezes não fiz o correto pq eu não entendi mesmo. Aguardo galera, t+.