Uma das maiores duvidas ao utilizarmos o objeto XMLHTTPRequest é: Qual a diferença entre os metodos GET e POST e quando usar um ou outro?
Em Teoria, o método GET deve ser usado quando a solicitação for idempotente, ou seja, varias solicitações retornarão o mesmo resultado. Na prática, se o método correspondente do servidor mudar o estado de alguma forma, provavelmente isso não ocorrerá. E esse é o padrão. A diferença mais pratica se da em termos do tamanho da carga – em muitos casos, os navegadores e servidores limitarão o tamanho do URL usado para enviar dados para o servidor; em outras palavras, evite mudar o estado do servidor com uma chamada GET.
Em geral, use o método POST sempre que estiver alterando o estado do servidor. Diferente de GET, você terá que configurar o cabeçalho Content-Type do objeto XMLHTTPRequest desta forma:
xmlHttp.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
Diferente do que ocorre com GET, o POST não restringe o tamanho da carga que é enviada para o servidor e não há garantias de que as solicitações POST serão idempotentes.
Provavelmente a maioria das solicitações que você criará serão solicitações GET; no entanto, existe POST para o caso de você precisar usá-lo.
[...] Fonte: http://nodesign.wordpress.com/2007/11/04/get-ou-post/ [...]