You already know how each one works, so I'll give you examples of when to use it.
GET passes variables by URL, it's useful for you to share a product page, do paging, things like that ... That is, as a benefit you can reproduce a search just by copying the URL, since the variables are in it.
Example:
product.php? product = 200 (will display the product with id 200)
You could even save the URL as a favorite, would go for the 200 product.
With POST you can not do these things as I said above, because the data is sent in the body of the HTTP request, as you said, it is ideal for forms login, register, send files (by get does not give).
In short: the difference lies mainly in the visibility of the data.
Note: the GET request is relatively faster, since it is simpler. In the POST request there is a loss of time in the message encapsulation.