Lijianfei.com

  1. GET is harmless when the browser falls back, while POST resubmits the request.
  2. The URL generated by GET can be bookmarked, but not by POST.
  3. GET requests are actively cached by browsers, whereas POST requests are not, unless set manually.
  4. GET requests can only be url encoded, while POST supports multiple encoding methods.
  5. GET request parameters are retained in browser history, while parameters in POST are not.
  6. GET requests pass parameters in the URL with length limits, whereas POST does not.
  7. GET accepts only ASCII characters for the data type of the argument, while POST has no restrictions.
  8. GET is less secure than POST because parameters are exposed directly to the URL and therefore cannot be used to pass sensitive information.
  9. The GET argument is passed through the URL, and the POST is placed in the Request body.

Answers to this standard are from W3schools


A GET request does not allow the body to pass data.

The HTTP specification doesn’t say that GET can’t send body data, it just says in RFC GET

The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.

It’s just that GET means to identify resources by URI.

But…

About the get request body mass, is not recommended by body mass, can refer to stackoverflow answer stackoverflow.com/questions/9 about the problem…


There is another important difference between GET and POST, to put it simply:

GET generates a TCP packet; POST generates two TCP packets.

Because POST takes two steps and consumes a little more time, it looks like GET is more efficient than POST.

But… It’s not a panacea.

  1. GET and POST have their own semantics and cannot be used together.

  2. In a good network environment, the time difference between sending a packet once and sending a packet twice can be ignored. In the case of poor network environment, the TCP of two packets has great advantages in verifying the integrity of packets.

  3. Not all browsers send packages twice in POST, Firefox only sends them once.