Arquitetura Web

A maravilhosa jornada de uma pequena requisição.

Client
1. Clique sobre um link ou digite uma URL no seu navegador.
Usuário
É você :)
18. Seu navegador apresenta o HTML, ou te informa sobre o que aconteceu.
A fim de ter interações mais ricas, é aqui, onde o Javascript entra em ação.
2. O navegador envia uma requisição.
Navegador
É uma aplicação que você utiliza para navegar na Internet.
Exemplos : Firefox, Chrome, Safari, Opera... E também o Internet Explorer, mas os desenvolvedores adoram detestá-lo ;)
Navegador
Internet
3. A requisição é enviada pela rede (Internet).
Requisição
Ela carrega as informações sobre quem é você e o que você solicitou. Quem você é : isso pode depender, mas principalmente seu IP (ao qual responde), e informações sobre seu computador (navegador, tamanho do monitor e de onde você vem). O que você solicitou: A URL, os parâmetros, o conteúdo do formulário e todos os cookies.
Requisição HTTP
17. Retorno !
4. Rede de computadores, roteadores e equipamentos que vão encontrar onde sua requisição deveria ir.
Rede
A Internet, uma série de tubos? Milhares de servidores, conectados por cabos, fibras, WI-FI, satélite...
Rede de Computadores
16. A resposta é retornada da mesma maneira que requisição é enviada.
Resposta
Você perguntou (requisitou), o servidor te responde. Esta é a resposta que você aguardava, com o conteúdo do qual você solicitou.
Resposta HTTP
Servidor Web
15. O servidor Web envia o que o servidor de aplicação informou a ele.
5. O servidor Web recebe a requisição, e verifica se ele pode te enviar enviar um arquivo ou se deve chamar outro sistema (software).
Servidor
Isto pode significar uma máquina ou várias, ou um sistema do que o objetivo é gerenciar sua requisição, depois chamar outro sistema que os desenvolvedores escolheram, antes de enviar uma resposta.
Servidor Web
  Arquivos são enviados de volta diretamente.
O servidor Web pode encontrar um arquivo e para enviar diretamente.
Arquivos
Se não há de muito inteligente envolvido e você solicitou um arquivo "estático" como uma imagem (não é susposto mudar com frequência), o servidor pode, diretamente, enviar de volta evititando a chamada do código "mais inteligente".
6. Achamos quem será responsável por responder a requisição seguindo as regras de roteamento (do servidor web, servidor de aplicação ou os dois).
Roteamento
Há muitas coisas que a gente pode fazer aqui, portanto há muito códigos também.
O roteamento é responsável de encontrar e chamar o código correto.

Cada framework tem sua maneira de fazer o roteamento, veja aqui o do Ruby on Rails.
Aplicação
14. Envia de volta o conteúdo : HTML (visão), dados brutos (XML/JSON), status (OK ou código de erro), ou um redirecionamento.
7. É aqui que a gente interfere via código!
Servidor de aplicação
O servidor de aplicação faz o código ser executado. Ele precisa fazer coisas um pouco diferentes que o servidor Web, é por isso que amamos separá-los, principalmente no caso onde não precisamos de todo o poder do servidor de aplicação e o servidor Web é suficiente para o trabalho.
Servidor de aplicação
13. "renderizamos" a visão a partir dos dados que são obtidos.
Visão
As "views" são principalmente pedaços de HTML, com locais para os dados que o Controlador esteve buscando.
MVC - Visão
12. O controlador pode também aplicar regras de negócio uma vez que os dados são obtidos pelo modelo.
8. O servidor de aplicação chama uma ação para lidar com a requisição.
Controlador
Se você utiliza um framework MVC, o controlador gerencia a requisição. Seu trabalho é executar as regras da aplicação.
Ele pode por exemplo fazer verificações de segurança, regras de acesso, e pedir ao Modelo as informações adequadas, para excutar a visão e te retornar uma resposta: conteúdo, arquivos ou talvez um redirecionamento, isto é, sua maneira de dizer "" et vous renvoyer une réponse : contenu, fichiers, ou peut-être une redirection, c'est à dire sa manière de dire "Não é minha responsabilidade, solicite lá".
MVC - Controlador
11. O modelo pode também aplicar as regras voltadas aos dados que ele recupera.
9. Pedimos ao modelo buscar ou cruzar os dados.
Modelo
Se você utiliza um framework MVC, o Controlador solicita os dados ao Modelo. O modelo conhece as regras da tarefa, e se conecta ao banco de dados.
Como saber se o código deveria estar no Modelo ou no Controlador? Se
  1. você fizer alguma coisa que não está na aplicação Web, e as regras seriam as mesmas
  2. você fizer várias aplicações, e esta regra seria identica entre elas
  3. o controlador é muito grande, você deveria, provavelmente, delegar algumas regras ao modelo

MVC - Modelo
Banco de Dados
10. O banco de dados pesquisa ou escreve os dados (informações).
Banco de dados
O banco de dados é onde seus dados são conservados. Ele utiliza programas especializados, otimizados para pesquisas rápidas e/ou alta disponibilidade.
Cada um oferece certo número de propriedades, como conservar os dados mesmo se houver falta de energia.
Banco de dados