- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Yes but I think his statement still stands. Mainly because he said "you're probably doing it wrong", if he didn't say probably I would argue the same point.
Now, do I get points for being pedentic?
Admin
I got it with the redirection once... http://foo.bar.com/DoStuffAction?NEXT_PAGE=http://foo.bar.com/StuffdoneMessage&ErrorPage=htt://foo.bar.com/TrytoRecoverFromError?ERROR_PAGE=http://foo.bar.com/OhNoes&SUCCESS_PAGE=http://foo.bar.com/StuffdoneMessage
...Only it got worse because there was some actual business logic going into those things, so they would nest upon themselves many many times.
At the same time that my first project was going in, the QA guys renamed all their test machines from things like r2s4.domain.com to things like halfback.domain.com. Those extra 4 charaters (repeated many times) were just enough to push above the URL buffer. Only we didn't get a friendly 414 error in that case. No, apache coredumped. And I got blamed even though I hadn't touched anything near the code that was breaking.
Over the next two years there, I saw the max URL size gradually increase from 256 to 512 to 1024 to 2048.
This was a voicemail system and part of the fun was that we had a mapping utility to format phone numbers (i.e. turn 804-555-1000 to 1-804-555-1000), which had been bastardized to enforce flow control by deciding which URL to go to for a particular phone number on caller-id. I had to put my foot down when they wanted me to increase the buffer for the phone number parser to 4096 bytes...
Admin
Only if you tell me what "pedentic" means.
Admin
Admin
Your sarcasm is hilarious...
Admin
Admin
You have just described how many ASP.Net pages work :-( The horrors of __VIEWSTATE is haunting my dreams
Admin
granted this probably isn't the best use of URL's, but on one project they wanted a bunch of dynamic charts to be displayed on single page. I set up a little GD library wrapper that returned a bar chart as an image from a crafty URL GET request and just ut up a whoel bunch of images. The 414 error came as more data needed to be displayed. I was never too happy with that limitation...
Admin
Admin
Keep huffing the nitrous oxide, though.
Admin
Admin
That sounded like a good rule, until I actually thought about it. There are plenty of limits that it can be useful to know - maximum integer size, maximum heap size, maximum size of a certain database field, maximum value of a Unicode character, etc.
It's true that URL length probably isn't on that list, and that columns per database table certainly isn't, but if you're someone asking these questions, then you're not someone who would know when to apply that general rule and when not to, anyway.
Admin
The whole idea of building a client-server protocol without state wouldn't have happened if Tim Berners-Lee had a clue, rather than being a doofus at CERN.
(Well, that's not quite true. Sun managed to build exactly the same problem into NFS, for very similar reasons.)
That doesn't mean you've got to be happy with it, as an IT professional.
It just means, and in spades, what Dirty Harry would say:
"Man's got to know his limitations."
In this case, 2093 bytes is it. Period.
Admin
Then again, HTTP was thought as a document repository. None of the WWW "inventors" ever thought someone would try to do applications on that... or did they???
Admin
Admin
From the perspective of having written sites for mobile phones I've come across this one before. Did you know some phone browsers won't even go over 255 characters? Once you put a huge godawful domain a client wants on the front, add a cookieless session token (cause the phone won't support cookies) it's not too unbelievable to hit that cap.
As far as 2000 characters goes, I can honestly say I'd never click a URL that long even if it worked :P
Admin
I just pasted that string as a get after the article's URL, and it was fine!
Pft, what a big deal over nothing. We live in an age where our GET strings should either be novel-length or we don't have enough to say.
Admin
"hide hide hide hide hide"
I would too.
Admin
"What the speed limit in town is?" What I do wrong asking this question?
Or another one : "What is limit of human stupidity" while reading WTF :)
Admin
And this is correct. Report is a view of data, doesn't have any important side-effects (from HTTP perspective), so it should use the GET method (RFC 2616 9.1).
Admin
Siding with the dinosaurs here - webservers were not meant for running applications. A real program would probably have been better here. What if you want to add things to that? Enough to quadruple the URL?
Plus, if all the information was posted to the server (assuming the server doesn't have the data already), the query could be assigned an identifier so that all the parameters don't need to be repeated each time the report is accessed and so that other people being sent the report can't unhide the hidden things.
Eg: www.reports.com/report/SDFAWSER23423 Much better.
Admin
Admin
Don't mistake needing to know the limit of something with needing to ask it... ;^)
Admin
By your logic, EVERY http request should be a POST, as it briefly changes the memory contents of the server and writes to the log files. Temporary "state change" is NOT a state change, the entire point of a state in the HTTP sense is that it is persistent.
Admin
This is the job for... a consultant!
Replace the crazy long URL you say? NO! Instead, add a NEW piece of code that runs everything through TinyURL first!
BRILLANT.
Admin
We ran into a problem with a web application recently where certain links wouldn't do anything. The links were good, but the browser didn't even try to navigate to the target page.
Turns out that the developer was dumping entire variable scopes into the URL, and one particularly complex page ran up against IE's 1200-something character limit for URLs.
Admin
Maybe, if you had spelled it correctly.
Admin
I don't see the problem. In our application we have multiple requests having an URL-length of about 15k :) Definately not the best framework, but it's working fine.
Admin
SEO at work! Somewhere along that page is going to get indexed by Google.
Admin
RFC 2616 9.1 says that GET methods should be safe - it does not say that POST methods should not be safe. It's perfectly legitimate for a POST method request to cause no change to the server state.
Admin
No. I do because you spelled pedantic wrong.
captcha: eros = Perverts
Admin
If you read RFC2616 parts 9.3 (GET method) and 9.5 (POST method) it is quite clear GET should be used to retrieve a resources that is identified by the URI; POST should be used if you are sending data to the server to be processed - this is regardless of whether the server stores that data persistently or not.
However, as one of my earlier comments accepts, having re-read the original article it appears that the URL under discussion does not send data to the server to be processed. It defines a (very large) number of filters to be applied to an existing report. Therefore, GET is the correct method for this request; and therein lies the WTF...
Admin
Actually, this bug also exists on phppgadmin, an equivalent to phpmyadmin for postgres databases. If you paste SQL-Queries into the SQL-window and then change the database with the drop down menu, you'll get a nice 414 if the SQL-Queries are too long..
Admin
Yeah, well 640K ought to be enough for anybody
Admin
And if you stare long enough you'll see....
A schooner!
Admin
I have custom messages for all of the HTTP errors on my web-site. http://zzo38computer.cjb.net/errors/414.htm
Admin
The solution to that one's simple: Just answer "five."
Admin
This is just someone trying to overflow the buffer of the Web server. I see tons of these requests in the server logs. Kids playing with some stupid tools downloaded from some weird places...
Admin
Ignoring the inadequacies of the underlying protocol, however, I feel that the OP (even if technically correct) is a perfect example of somebody blindly following rules without the faintest notion of the consequences. GET is quite clearly wrong here.
Given something as brain-dead as HTTP, I'm not sure what solution I'd recommend, but I'd have to think that separating the report data from the filter using something like iframes would be the way to go. Whoop-de-do, an entire MVC inside a single browser page ... perhaps it's time for another framework.
Or a coffee.
Or self-inflicted euthanasia.
Admin
We have a content management system at work that suffers from a similar issue. Editorial is entered into a GUI editor and with the hit of a button, the entire editorial is sent via GET.
This has led to the editors removing emboldenment and italics and replacing large sections of text with less nice one-liner text.
In fact, there is even a celebration every time someone gets one entered and it goes through first time without hitting the 414 error.
Admin
I once inherited a PHP application that dumped an entire database table's contents into a URL parameter. In fact, the format of the URL printed is uncomfortably familiar - down to the pipe-separated data.
Thankfully, I no longer work there.
Admin
I had already saw a form receiving a http 414 code. The form must be using post method, but the developer should forget this.
Admin
Not really. The valid answers are a byte, a short int, a long int and a bignum.
Admin
The program should not exceed 10,000 lines per developer or it becomes unmaintainable.
No known limit on this one, but your bottleneck is the filesystem, expect to be capped at 4GB.
65535 threads seems to be the hard limit but likely you'll be out of RAM way before that.
With rise of Data URIs the idea of 'too long URL' becomes somewhat obsolete.
Admin
I take issue with this logic -- if someone doesn't realize what certain limits are and doesn't ask, then they are doing it wrong. Asking the question is part of the process of "doing it right."
As for your example, what is inherently wrong with asking that question? There are plenty of cases where you could wind up with tables that have an unusually high number of columns, such as summary tables that combine information from many other tables. That's a case where the question at face value may seem indicative of bad design, but it is, in fact, the opposite. Jumping to conclusions without really digging in to the problem is the real case of "doing it wrong."
Admin
And only 255 tables.
I hate my DBMS
Admin
Happened to me once. Adding products to order made an AJAX request to the server and every time the parameters were not cleared from the request so when someone bought 11 items then she would get an error.
Admin
This looks similar to a bugzilla advanced search results URL.
Admin
after the first really large one (over 10 million) i could no longer use tinyurl's page without getting a 414.
my record was over 29 million.
go ahead ask me. i'll check back.
(if importunate isn't your style, i'm sorry; right now crowing about small victories feels like its just the thing to boost my mood)
Admin
The problem is you can't bookmark report that is generated using POST data. It is just not saved within bookmark. So you'd get empty report or some pesky error.
Management wanted to be able to bookmark reports, so we gave them exactly what they asked for.