Maximum URL Size in HTTP GET Request
There is no thumb rule made for the maximum URL size of HTTP Get Request as per RFC 2616 (Hypertext Transfer Protocol — HTTP/1.1 – Section 3.2.1). Limits are imposed by various browsers and respective servers. These limits must be considered collectively while passing the query string passed in the URL in any of the HTTP Requests. If the URL size exceeds the URL Size limit imposed by the respective browser, the request will not be passed to the server & unnecessary effort will be required to debug & handle this situation.
To avoid this kind of a situation, one must account for this possibility in earlier stages of development. I have compiled the limits and other basic information regarding the HTTP Get Request
Browser | Maximum URL Size | Remarks |
Internet Explorer | 2048 B | Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters. Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST request and GET request URLs.If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path. |
Mozilla Firefox | >100 KB | The address bar doesn’t shows any characters beyond 65,536 characters. But the URL Size can be more than that, though you cannot view it in the address bar. This holds for FireFox 1.5 up until the current FireFox version |
Opera | >200 KB | The URL is completely visible in the address bar even at such a big range |
Chrome,Safari | >100 KB | Both browsers are webkit based and seems to have almost same limit as firefox |
Server | Maximum URL Size | Remarks |
Apache | >128 KB | The size is changed using the LimitRequestLine setting of the server |
IIS | >16 KB | Default value is 16 KB and maximum limit is 16 MB |
Lotus Notes | 4 KB | – |
Let’s understand the basic difference between a GET Request and a POST Request. GET requests are made to request a particular resource from the server. Whatever information is required to fetch the desired resource are passed as query string parameters. While POST Requests are made to post some data to a particular resource for processing as well as request a response. We should not use GET Requests to have data posted to the server, it should only be used, as its name suggests, to get a particular resource from the server. There is a thin but very clear line between logical usage of both
Very long URLs are not recommended at all. For a web based application to be cross browser compatible, the Get Method must not be used for passing very long strings, containing more than 2000 characters. If you are facing a situation where you need to use URLs to contain huge number of characters, then give it another thought