I tried using overstock.com yesterday and after visiting four or five pages all subsequent requests returned a blank page with a 418 error. Even on a different computer. Same thing. Even when I tried a different internet source.
I assume it was some server session error because my friends weren't having the issue.
All the HTTP error codes are like that. There are hundreds of them, but they're not specific enough to actually tell you what went wrong without site-specific information.
Which is why REST APIs should just accept that the only two error codes that matter are 400 Your Fault and 500 My Fault. Too much ambiguity when you try to shoehorn meaning into responses like 401 and 404.
I have a gopher server [1] that kept getting requests from some webbot. So I extended the gopher server to respond to any HTTP style request with "418 I'm a teapot". Sure enough, the webbot stopped making requests shortly thereafter.
Hmmm, I thought I brewed tea all of the time. Should I be sending a STEEP command instead? I haven't read the docs on how to properly make a cup of tea.
It is an error as error 418 is returned if you attempt to communicate with a teapot over the "Hyper Text Coffee Pot Control Protocol", which, as the name implies, is only to be used to talk to coffee pots[0]. The protocol was extended in 2014 for teapot compatibility[1].
Google has a fun version of this: https://google.com/teapot
I tried using overstock.com yesterday and after visiting four or five pages all subsequent requests returned a blank page with a 418 error. Even on a different computer. Same thing. Even when I tried a different internet source.
I assume it was some server session error because my friends weren't having the issue.
But the 418 was a useless error code to report.
All the HTTP error codes are like that. There are hundreds of them, but they're not specific enough to actually tell you what went wrong without site-specific information.
Which is why REST APIs should just accept that the only two error codes that matter are 400 Your Fault and 500 My Fault. Too much ambiguity when you try to shoehorn meaning into responses like 401 and 404.
I have a gopher server [1] that kept getting requests from some webbot. So I extended the gopher server to respond to any HTTP style request with "418 I'm a teapot". Sure enough, the webbot stopped making requests shortly thereafter.
[1] gopher://gopher.conman.org/
But what if it IS an actual IoT teapot? https://templates.blakadder.com/proficook_PC-WKS_1167.html
Lots of http 418 discussions here already:
https://hn.algolia.com/?q=418
But it's not an error. It really is a teapot.
Exactly. Making it invalid for brewing coffee. The error is specifically for rejecting a BREW request sent to a teapot.
Hmmm, I thought I brewed tea all of the time. Should I be sending a STEEP command instead? I haven't read the docs on how to properly make a cup of tea.
Might Sir be interested in ISO3103?
( https://en.wikipedia.org/wiki/ISO_3103 )
Why yes. Very much so indeed. I don't know why (actually I do), but I read that in the voice of Stephen Fry.
It is an error as error 418 is returned if you attempt to communicate with a teapot over the "Hyper Text Coffee Pot Control Protocol", which, as the name implies, is only to be used to talk to coffee pots[0]. The protocol was extended in 2014 for teapot compatibility[1].
0: https://tools.ietf.org/html/rfc2324
1: https://tools.ietf.org/html/rfc7168
400s are user errors ;)