Certifique-se de ler a resposta do SilverlightFox. Destaca uma razão mais importante.
O motivo é que, se você conhece a fonte de uma solicitação, pode querer personalizá-la um pouco.
Por exemplo, digamos que você tenha um site com muitas receitas. E você usa uma estrutura jQuery personalizada para deslizar receitas para um contêiner com base no link em que elas clicam. O link pode serwww.example.com/recipe/apple_pie
Agora, normalmente, isso retorna uma página inteira, cabeçalho, rodapé, conteúdo da receita e anúncios. Mas se alguém estiver navegando em seu site, algumas dessas partes já estarão carregadas. Portanto, você pode usar um AJAX para obter a receita que o usuário selecionou, mas para economizar tempo e largura de banda, não carregue o cabeçalho / rodapé / anúncios.
Agora você pode escrever um ponto final secundário para os dados, www.example.com/recipe_only/apple_pie
mas isso é mais difícil de manter e compartilhar com outras pessoas.
Mas é mais fácil detectar apenas que é uma solicitação ajax fazendo a solicitação e retornando apenas uma parte dos dados. Dessa forma, o usuário gasta menos largura de banda e o site parece mais responsivo.
As estruturas apenas adicionam o cabeçalho, porque algumas podem achar útil acompanhar quais solicitações são ajax e quais não. Mas é totalmente dependente do desenvolvedor usar essas técnicas.
Na verdade, é meio parecido com o Accept-Language
cabeçalho. Um navegador pode solicitar um site, por favor me mostre uma versão em russo deste site sem ter que inserir / ru / ou similar no URL.