Pardon my ignorance, but doesn't https already signs every response sent by the server?
yes, but that's not practical.
It could be practical if you have a browser plugin which saves a https page together with its signature, and that would have a much broader usage. I wonder if such a thing doesn't exist already...
the fact that we don't know if such a thing exists already illustrates my point...
in addition, there are situations where the communication channel is not https, and where signed URIs would still be useful.
Also a key thing to remember is we want the payment address signed BEFORE payment.
We want to prove not just a payment was made but it was made to an address controlled by the merchant/payee and (optionally) for what purpose.
D&T paid ThomasV 100 BTC on 01/17/2012.
I wouldn't want to rely on website as for example http:thomasV.com and https://tho.masV.com
are different identities. While I could save the pages & signatures for https://tho.masV.com
it doesn't prove anything other than I got scammed.
Compare that to a system where I can obtain ThomasV public key in advance and import it into my wallet. I then get a payment URL which is signed by ThomasV private key. The wallet can then notify me that I am not just paying a random bitcoin address I am paying an address signed by ThomasV (or warn me if it isn't signed). Once I make that payment I now have proof of the time (via block timestamp), the entity paid, and the amount. By including more information in the payment url (as a note) it eliminates the ability to even say "no that 100 BTC was for an unrelated order. I loaned him 100 BTC and he was paying me back". As an example the protocol should allow (optionally) to include a plain text note ("Order # 12345 for 3 HD 5970 graphics cards").
If ThomasV doesn't deliver, delivers the wrong item, or claims nonpayment all those things can be proven false.
The goal is a system/protocol that using digital signatures one can obtain proof of payment for a specific transaction.