|
|
|
|
|
by darawk
2959 days ago
|
|
> you have no right or way to dictate to me what program should I use to render the data Why not? Why am I not allowed to say "If you want to consume my content, you need to view it in Firefox", if you don't want to agree to my terms, don't view my content. This is how all contracts work. This is how all business works. Why is the internet different? |
|
The Internet isn't really different, it's just people are bending over backwards to have their cake (send free content) and eat it too (tell people how they're supposed to view that content).
When you're serving stuff over HTTP, you're giving me data in response to a valid HTTP request. That data is a binary/text blob. The HTTP protocol does not include any technical or legal provision that allows you to control how I interpret that binary/text blob. You can say "only for Firefox" all you want, but the only way to make it meaningful is to not send the data unless you're sure I'll be using Firefox to view it.
I'm focusing on the protocol here for a reason. That protocol comes with the set of expectations; probably the most important is that you get to decide how you respond, but not what I do with that response. Understanding of that is necessary to draw correct analogies to other real-world practices.
So a real-world analogy would go like this: you've set up a stand on the street, with a big sign saying "FREE BOOK ABOUT CATS". I come to you, and ask if I can have that book (GET request). You give me a book (content) and a hat with a company logo (an ad). I leave you, and on my way discover that the first page of the book says, "you can only read this book if you're wearing the hat that was given to you".
It would be ridiculous of you to expect me to honor the request in that book. Hell, it would be ridiculous of you to require that I actually read the book. Maybe I only needed it as paperweight, or as starter fuel for a wood-burning stove. Oh, and I threw the cap you gave me away, without even looking at it.
The only implicit contract we had in this example was that I might get a free book if I ask nicely. That's also the only implicit contract that you get when you host a publicly routable HTTP server.