Eu tenho um sistema que consiste em um software personalizado e um servidor HTTP. O software enviará algumas solicitações com alguns cabeçalhos e o servidor HTTP enviará a resposta de volta.
Agora eu tenho alguns cabeçalhos relacionados à autenticação personalizada que o servidor enviará para o software, o software manterá esses cabeçalhos e os enviará de volta em cada solicitação adicional para ignorar o processo de autenticação.
Com base no meu entendimento, isso deve ser feito usando cookies. No entanto, no desenvolvimento de software personalizado, adicionar cabeçalhos normais é fácil, enquanto adicionar cookies é mais difícil de implementar, e o uso de cabeçalhos normais também funciona funcionalmente com base em testes.
O que eu quero saber é se existe algum motivo de segurança e/ou outros motivos pelos quais um cookie deve ser usado em vez de um cabeçalho HTTP personalizado normal?
Essa é mais uma questão de desenvolvimento de software e provavelmente atrairá melhores respostas nos sites StackOverflow, Engenharia de Software ou possivelmente nos sites de segurança SE.
Mas a resposta mais simples é que um cabeçalho é definido pelo cliente e geralmente estático, como, por exemplo, incluir um token de API específico em cada solicitação.
Sessões e cookies são definidos pelo servidor. Quanto mais tarde dá ao servidor mais controle e segurança melhor. O servidor pode expirar sem invalidar as credenciais reais com as quais você se autentica, fazendo com que você se re-autentique (por exemplo, sempre após X horas ou algum tempo ocioso) ou altere seu valor para evitar ataques de alta de sessão ou de repetição.