Hello.
A screen in my app (Screen A) could be passed large number of input parameters, and if the total length of parameter (=URL) reached beyond some point, it behaves a bit weird.
1. When connecting by entering URL directly from browser, or refreshing screen, it shows 404 error.
2. When connecting from other screen (Screen B), it occasionally shows 404 error while most of the time it works fine and shows correct screen.
This is what I get for 404.
(Here's general idea of what's happening)
Why does this happen and how can I avoid it?
(Of course reducing amount of input parameters is a way, but I'd like to know if there's another way.)
Thanks in advance.
Hi
It is not Outsystems's problem. It is depends on IIS configration, Default is 2048. Please refer to the link bellow.
https://learn.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/requestlimits/
Also, You can use Factory configration tool to chage thease settings.
Regards,
Hi,
Tom's is right, basically there is no limit on the url, it is based on config (IIS)
https://www.sistrix.com/ask-sistrix/technical-seo/site-structure/url-length-how-long-can-a-url-be
But it is recommended to keep it under 2048, specially if you using SEO for your web application.
Thank you for your answers Tom and Toto.
I understood that it's IIS's configuration that decides how long the URL can be.
And since we cannot configure IIS settings due to policy, we've decided to save those query params in DB and fetch it on destination screen.
Cheers.
Parameters in the url expose information and someone can tamper with. If I have to pass a lot of data, I would store it in a database table with a GUID as key and pass the GUID to the next page.In that page you can retrieve the data based on the given GUID.
Thanks to Erwin, I'll try reducing amount of input parameter (and pass GUID instead).
By the way, I'm still curious about behaviour of screens with long URL.
As I mentioned above (1. in the image), connecting from inside OutSystems App won't cause 404 Error for the most of the time, but when you refresh the page, it always shows 404 error(same as 2. in the image).
Now this seems a bit inconsistent to me.
What makes difference between cases 1.(including refreshing page) and 2.? Is there any possible workaround for this?
Regards.
Try to encode the URL before hitting it.