what are key differences between $_get and $_post

I searched a lot for differences between these both terms.
i am happy with others also but that is not a ending and final clue i find
so i am there to write it and comments are appreciated always !
First i would discuss pros and cons of both !
Benefits of $_get :

  1. It can be bookmarked
  2. $_Get is used for ajax request with xmlhttprequest,the more power !
  3. There would remains parameters in browser as per they are part of url when submitting
  4. Application/x-www-form-urlencoded
  5. Ascii charaters are allowed
  6. It is cacheable
  7. 7607 character maximum size

Disadvantages OF $_GET :

  1. Easier to hack
  2. Less secure
  3. Url length is restricted
  4. If password or secrets etc. are used with $_get ; they are prone to be hacked

Benefits of &_Post :

  1. Multipart/form-data or  application /s-www-form-urlencoded use mutipart encoding for binary data
  2. It can send parameters
  3. It can inlude uploading files to the server
  4. It is less prone to be hacked
  5. No restrictions
  6. When submitted no variables etc are not shown
  7. 8mb max size can send or more also

Disadvantages of $_post :

  1. It is not cache-able
  2. It can not be bookmarked
  3. Parameters are saved in browser history
  4. Normally when refreshing the page , requires submit again as it is not cache-able

Now the question comes to mind that when we should $_get and when we should use $_post
they have their own values and we cannot claim this thing that one is preferable than other etc.
Here we should use a techniques one is called url rewriting for $_post and $_get  and second is called url encoding for safe programming and development.

We should use these techniques for getting the best maximum results from both of them.
comments are appreciated always !