Earlier quoted context omitted.
> It also defeats caching and any other reasons why you would want to use GET over some other http requests. It does not break caching. Instead of just using the URL as the caching key, use URL+body. Same URL and same body = same response.
Do any caches operate like that?
HTTP/1.1 just got a major update
41–50 of 75 posts
Re: HTTP/1.1 just got a major update
#42Finally, the spec is crystal clear that message bodies on GET requests are not illegal.
Re: HTTP/1.1 just got a major update
#43Why is it not called HTTP/1.2? Or, how will clients (or servers) tell the difference between a peer implementing RFC 2616 (HTTP/1.1 old version) and RFC 723x (HTTP/1.1 new version)? Could it be that there is so much software hardcoded to look for "HTTP/1.1" that a "HTTP/1.2" string would break them all?
Because it does not really change the protocol. It clarifies details and implements spec fixes (e.g. matches the spec better to actual real-world use).
Re: HTTP/1.1 just got a major update
#44Why is it not called HTTP/1.2? Or, how will clients (or servers) tell the difference between a peer implementing RFC 2616 (HTTP/1.1 old version) and RFC 723x (HTTP/1.1 new version)? Could it be that there is so much software hardcoded to look for "HTTP/1.1" that a "HTTP/1.2" string would break them all?
The argument is that the two should be able to transparently interop together, and specifically that RFC 723[0-5] simply codifies the way HTTP/1.1 already works in the real world. We'll see how well that goes.
Re: HTTP/1.1 just got a major update
#45Earlier quoted context omitted.
Because it does not really change the protocol. It clarifies details and implements spec fixes (e.g. matches the spec better to actual real-world use).
Can you send a 308 permanent redirect to existing software and get the expected behavior?
I get failures in Chrome and IE. Firefox passes if I click OK in a funny dialog.
Re: HTTP/1.1 just got a major update
#46Earlier quoted context omitted.
Pardon my ignorance but how are GET payloads useful? Does that not violate REST principles?
Elasticsearch: it accepts JSON bodies in GET requests to define the parameters of a search. These can get quite large so it's preferable to encoding everything in the query string. The operation is read-only, so an argument can be made that a GET makes more sense than a POST. That said, I POST my search params to Elasticsearch anyways.
Re: HTTP/1.1 just got a major update
#47Earlier quoted context omitted.
Can you send a 308 permanent redirect to existing software and get the expected behavior?
Try it out: http://webdbg.com/test/308/ I get failures in Chrome and IE. Firefox passes if I click OK in a funny dialog.
So, this new "HTTP/1.1" feature broke my existing (old-)HTTP/1.1 chrome browser!
If they had called it HTTP/1.2 they could send a non-308 redirect to HTTP/1.1 clients and 308 to HTTP/1.2.
Instead, we now have servers and clients both speaking "HTTP/1.1" (whatever that is this week) not able to interoperate.
Poor job.
Re: HTTP/1.1 just got a major update
#48Earlier quoted context omitted.
Can you send a 308 permanent redirect to existing software and get the expected behavior?
Try it out: http://webdbg.com/test/308/ I get failures in Chrome and IE. Firefox passes if I click OK in a funny dialog.
Re: HTTP/1.1 just got a major update
#49Earlier quoted context omitted.
Can you send a 308 permanent redirect to existing software and get the expected behavior?
Try it out: http://webdbg.com/test/308/ I get failures in Chrome and IE. Firefox passes if I click OK in a funny dialog.
308 preserves the HTTP verb[1], and the form on that page uses POST. POST is not idempotent[2], which means using it more than once with the same parameters may not yield the same output. For example, POSTing this comment form twice would append to the resource twice; as opposed to GETing twice which just returns the resource unmodified both times.
Firefox correctly (under the old RFC for a 301 redirect[3]) asks for confirmation before automatically repeating a request that is not guaranteed to be safe to repeat. Some implementations will instead convert the request into a GET, which is why 308 was needed in the first place.
[1]: http://tools.ietf.org/html/rfc7238#section-3
[2]: http://tools.ietf.org/html/rfc2616#section-9.1.2
[3]: http://tools.ietf.org/html/rfc2616#section-10.3.2
Edit: links
Re: HTTP/1.1 just got a major update
#50Great writeup. One issue... It's now suggested to use the about:blank uri in the Referer header when no referer exists, to distinguish between "there was no referrer" and "I don't want to send a referrer". For the sake of privacy would it not be better if there was no such distinction. Basically now any privacy conscious services need to add 'about:blank' as the referrer when users do not want to have their behaviour…
If a user doesn't want to send the referrer when there is no referrer, no referrer should be sent. This then allows sites to distinguish between direct traffic from users that don't block referrers and traffic with blocked referrers. I wouldn't expect this to be a significant concern, because the volume of actual direct traffic is not very large.
Any example of benefits for servers to distinguish direct traffic vs. blocked referrers?