Notes
foo=bar&bar=baz -- that is, they are in name=value pairs, with multiple variables separated by ampersands. In GET requests, the variables are at the end of the URL bar (between the resource and a hashtag, if one is present). In POST requests, they are at the start of the data portion of the HTTP request.-d, --data "NAME=VALUE" POSTs the pair name=value as data. For instance, curl example.com -d "foo=bar" -d "name=sam" POSTs two variables, foo and name, to example.com, with values bar and sam.-F, --form "NAME=@SOME_FILE" lets you upload a file. You can't mix -F and -d because they are different types of HTTP requests with different headers. Anything that you put after the @ sign is interpreted as a file that you're uploading to the remote server via POST.--data-urlencode "NAME=VALUE" does URL encoding for you so that you can include special characters without worries.