The purpose of GET is as its
name implies - to GET information. It is intended to be used when you are
reading information to display on the page. Browsers will cache the result from
a GET request and if the same GET request is made again then they will display
the cached result rather than rerunning the entire request. This is not a flaw
in the browser processing but is deliberately designed to work that way so as
to make GET calls more efficient when the calls are used for their intended
purpose. A GET call is retrieving data to display in the page and data is not
expected to be changed on the server by such a call and so re-requesting the
same data should be expected to obtain the same result.
The POST method is intended
to be used where you are updating information on the server. Such a call is
expected to make changes to the data stored on the server and the results
returned from two identical POST calls may very well be completely different
from one another since the initial values before the second POST call will be
different from the initial values before the first call because the first call
will have updated at least some of those values. A POST call will therefore
always obtain the response from the server rather than keeping a cached copy of
the prior response.
So rather than choosing
between GET and POST based on the amount of data that you are passing in your
Ajax call, you should select between them based on what the Ajax call is
actually doing. If the call is to retrieve data from the server then use GETS.
If the value to be retrieved is expected to vary over time as a result of other
processes updating it then add a current time parameter to what you are passing
in your GET call so that the later calls will not use an earlier cached copy of
the result that is no longer correct. If your call is going to write any data
at all to the server then use POST.
In fact you should not only
use these criteria for selecting between GET and POST for your Ajax calls. You
should use this as the criteria for choosing whether to use GET or POST when
processing forms on your web page as well.