HTTP is part of the problem. HTTP doesn’t distinguish between dynamic and static documents, and while it has facilities for representing redirects, moved files, and other potentially useful features, nobody implements or uses any parts of HTTP other than the behavior of codes 200, 404, and (occasionally) 500; even very useful features like partial download requests and file time requests are inconsistently supported.
HTTPS is part of the problem. Hierarchical certificate signing chains will always be vulnerable to leaked top-level certificates, and poor support for certificate revocation will continue to slow adoption of improved hash algorithms.
DNS is part of the problem. The association between hostnames and IPs is only useful from the perspective of a machine (or a programmer thinking at the machine level); the association that is useful to users is one between names and chunks of data, or sometimes between names and services.
If you want to know what *might* save the web, take a look at IPFS & IPNS, then take a look at Project Xanadu.