Varken HTTP eller HTTPS garanterar i sig leverans. De är bästa ansträngningsprotokoll. Medan de har mekanismer för att begära överföring av förlorade paket (HTTP använder ihållande anslutningar och pipelining, medan HTTP:er bygger på det med TLS), finns det ingen absolut garanti för att ett meddelande så småningom kommer att nå sin destination. Nätverksproblem, serverfel eller andra oförutsedda problem kan fortfarande förhindra framgångsrik leverans.
Därför finns det inget protokoll som används av webbläsare och webbservrar som garanterar leverans på det sätt som ett protokoll som TCP skulle i en punkt-till-punkt-kommunikation (även om TCP är det underliggande transportprotokollet för både HTTP och HTTPS). För att garantera leverans behöver du ytterligare mekanismer utanför räckvidden för bara HTTP eller HTTPS, till exempel:
* Meddelande köer (t.ex. RabbitMQ, Kafka): Dessa system ger garanterad leverans genom att bestå meddelanden och kvitto.
* Anpassade applikationsnivåer Erkännanden: Ansökan i sig kan implementera ett system för att bekräfta kvitto.
* Redundans och Retries: Applikationen kan skicka flera försök och implementera mekanismer för att hantera fel.
Kort sagt är HTTP och HTTPS utformade för effektiv dataöverföring, inte garanterad leverans. Detta ansvar flyttas till protokoll på högre nivå eller strategier på applikationsnivå.