Nem o HTTP nem o HTTPS garantem inerentemente a entrega. Eles são protocolos de melhor esforço. Embora tenham mecanismos para solicitar retransmissão de pacotes perdidos (o HTTP usa conexões persistentes e pipelining, enquanto o HTTPS se baseia nisso com o TLS), não há garantia absoluta de que uma mensagem acabe chegar ao seu destino. Problemas de rede, falhas do servidor ou outros problemas imprevistos ainda podem impedir a entrega bem -sucedida.
Portanto, não há protocolo usado por navegadores da Web e servidores da Web que garantam a entrega da maneira como um protocolo como o TCP faria em uma comunicação ponto a ponto (embora o TCP seja o protocolo de transporte subjacente para HTTP e HTTPS). Para garantir a entrega, você precisa de mecanismos adicionais fora do escopo de apenas HTTP ou HTTPS, como:
*
Filas de mensagem (por exemplo, RabbitMQ, Kafka): Esses sistemas fornecem entrega garantida por mensagens persistentes e reconhecendo o recebimento.
*
Agradecimentos de nível de aplicativo personalizados: O próprio aplicativo pode implementar um sistema para confirmar o recebimento.
*
redundância e tentativas: O aplicativo pode enviar várias tentativas e implementar mecanismos para lidar com falhas.
Em resumo, HTTP e HTTPS foram projetados para transferência de dados eficientes, e não entrega garantida. Essa responsabilidade é transferida para protocolos de nível superior ou estratégias no nível do aplicativo.