Executando verificação de segurança...
1

90 dias documentando a busca por um emprego - Dia 11: O diabo mora nos detalhes

Imagina a seguinte situação.
Você tem um portfólio com seus projetos e quer entender quais currículos enviados realmente fazem recrutadores acessarem seu site.

Passei um tempo pensando qual seria a melhor forma de fazer isso sem precisar alterar o projeto do portfólio em si. Depois de refletir bastante, decidi criar um mini encurtador de URL.

A ideia funcionaria assim: quando alguém acessasse algo como "meusite.com/3m4be", o sistema pegaria o ID encurtado presente na URL, descriptografaria, buscaria no banco de dados e redirecionaria para o destino correto. Caso o ID não fosse encontrado, por segurança, o usuário seria redirecionado para a página principal do meu portfólio, algo como "portfolio.meusite.com".

Na primeira vez que tentei acessar o encurtador, tudo funcionou como esperado.
O acesso foi salvo no banco de dados e o redirecionamento ocorreu corretamente.

Mas, como nem tudo são flores, logo percebi algo estranho.
Os acessos seguintes não estavam sendo contabilizados.

Depois de um tempo investigando, revisando código e logs, encontrei o culpado.

O maldito status code 301, que significa Moved Permanently.

Ao usar um redirecionamento permanente, o navegador simplesmente memoriza o destino e, nas próximas requisições, nem chega a consultar o servidor. O resultado? Os acessos futuros não eram contabilizados.

Um detalhe pequeno, quase invisível, que me fez refletir sobre como o diabo mora nos detalhes.
Esse detalhe me fez reforçar algo importante status codes não servem apenas para indicar sucesso ou erro, eles influenciam diretamente o comportamento dos navegadores, caches e da própria aplicação.

Carregando publicação patrocinada...
1

Meus 2 cents,

A ideia eh boa, tenho meu proprio dominio para encurtador (e assim checar acessos).

Para evitar a dor de cabeca do 301, uma opcao eh forcar o header 302 (temporario) que "em teoria" forcaria o browser a recarregar e nao fazer cache.

Expandindo um pouco a coisa, como tenho meus proprios dominios e sistema de email, eu uso emails "especiais" em certas ocasioes: p.ex. [email protected].

Assim, toda comunicacao que chegar em sitex@ eu sei que veio do cadastro que fiz naquele site, o que tem varias vantagens: senhas (nao tem problema elas serem comprometidas, no sentido de contaminar outros servicos) e se comecar a receber SPAM, sei exatamente quem foi o FDP que esta causando isso.

Saude e Sucesso !