Hacker News new | ask | show | jobs
by TeMPOraL 2959 days ago
> What makes you think you have the right to the content, without abiding its terms?

To state the same points others already did in a different way - you put out data on the Internet, over HTTP protocol. You agreed to abide by the terms of the involved protocols, which say that if I send a proper HTTP request to your public server, and your server responds with data, then you gave me that data and it's now mine to view[0]. The browser is merely a rendering device for that data. At the HTTP level, you have no right or way to dictate to me what program should I use to render the data. Want the data rendered your way? Use a different protocol, leave HTTP alone.

Now you're free to use technical and legal means to enforce your business model. It's your prerogative. Please do make me register an account and consent to a TOS contract, and deny access if I don't. HTTP protocol supports that too. If you do that, then I'll be morally and legally expected to follow the contract. But if you serve stuff unconditionally on publicly routable servers, you have no moral right to tell people what to do with that data.

EDIT: also, you're free to detect I'm not parsing your content correctly (by e.g. not requesting appropriate files from your servers, or not running scripts that ping you back), and refuse to send me more content. That's your right. But if you send me content, your rights end, and I decide how I want to view it.

--

[0] - There are legal caveats there that supersede this basic idea, like copyright and unauthorized access, but there are no laws nor any reasonable moral expectation that would force me to render the data I received in exactly the way the server wants.

1 comments

> 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?

> 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.

I’d add that there’s nothing stopping anyone from creating their own protocols and their own content browsers that can enforce whatever contract the software makers and content creators choose.

DRM and proprietary apps already do this.

The HTTP User Agent implies user agency when it comes to how and what content is rendered.

> 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).

I think the substance of our disagreement comes down to this. You think that a website is a sign that says "FREE CONTENT", whereas I don't believe the HTTP protocol represents any particular specification regarding the terms of access. The HTTP protocol allows you to access the data. However, a storefront allows you to access the goods inside, but that doesn't entitle you to take them without payment.

The HTTP doesn't just allow access to data. It mediates the entire exchange.

As others pointed out, a HTTP 200 response is an action that's explicitly defined to mean "here, have this data, we're done here". If a physical storefront was running on HTTP, then the 200 response would contain just the image of the storefront (I get to view it how I like - maybe through glasses, maybe through rose-tinted glasses, or maybe via touch if I'm blind; and I definitely get to not look at advertisements if I don't like them). If I ask the store clerk for an item, they would usually respond with something like 402 Payment Required or 403 Forbidden, and that response would not contain the item I asked for. This would indicate I need to meet extra conditions to access the resource (like giving them cash along with my request).

Fundamentally it all boils down to this: on the Internet, if you send some data, you give it away. You can't, by default, dictate what I do with that data. The time to make those demands is before you hand over the data.