diff options
Diffstat (limited to 'files/pt-br/web/http/methods/post/index.html')
-rw-r--r-- | files/pt-br/web/http/methods/post/index.html | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/files/pt-br/web/http/methods/post/index.html b/files/pt-br/web/http/methods/post/index.html new file mode 100644 index 0000000000..d5d1f07a1e --- /dev/null +++ b/files/pt-br/web/http/methods/post/index.html @@ -0,0 +1,122 @@ +--- +title: POST +slug: Web/HTTP/Methods/POST +tags: + - HTTP + - Método de requisição + - Referencia +translation_of: Web/HTTP/Methods/POST +--- +<div>{{HTTPSidebar}}</div> + +<p>O <strong>método HTTP <code>POST</code></strong> envia dados ao servidor. O tipo do corpo da solicitação é indicado pelo cabeçalho {{HTTPHeader("Content-Type")}}.</p> + +<p>A diferença entre <code>PUT</code> e {{HTTPMethod("POST")}} é que <code>PUT</code> é idempotente: chamá-lo uma vez ou várias vezes sucessivamente tem o mesmo efeito (ou seja, nenhum efeito colateral), onde sucessivos POST idênticos podem ter efeitos adicionais, assim como passando uma ordem várias vezes.</p> + +<p>Uma solicitação <code>POST</code> geralmente é enviada por meio de um <a href="/pt-BR/docs/Web/Guide/HTML/Forms">formulário HTML</a> e resulta em uma alteração no servidor. Nesse caso, o tipo de conteúdo é selecionado colocando a string adequada no atributo {{htmlattrxref("enctype", "form")}} do elemento {{HTMLElement("form")}} ou o atributo {{htmlattrxref("formenctype", "input")}} dos elementos {{HTMLElement("input")}} ou {{HTMLElement("button")}}:</p> + +<ul> + <li><code>application/x-www-form-urlencoded</code>: as chaves e valores são codificados em tuplas de valor-chave separadas por <code>'&'</code>, com um <code>'='</code> entre a chave e o valor. Caracteres não alfanuméricos em chaves e valores são {{glossary ("percent-encoding", "percent encoded")}}: este é o motivo pelo qual esse tipo não é adequado para uso com dados binários (ao invés disso, use <code>multipart/form-data</code>)</li> + <li><code>multipart/form-data</code></li> + <li><code>text/plain</code></li> +</ul> + +<p>Quando a requisição <code>POST</code> é enviada através de um método diferente de um formulário HTML - como por meio de um {{domxref("XMLHttpRequest")}} - o corpo pode assumir qualquer tipo. Conforme descrito na especificação HTTP 1.1, o <code>POST</code> é projetado para permitir que um método uniforme cubra as seguintes funções:</p> + +<ul> + <li>Anotação de recursos existentes</li> + <li>Postar uma mensagem em um quadro de avisos, newsgroup, lista de emails ou grupo similar de artigos;</li> + <li>Adicionando um novo usuário através de um modal de inscrição;</li> + <li>Fornecendo um bloco de dados, como o resultado do envio de um formulário, para um processo de manipulação de dados;</li> + <li>Estendendo um banco de dados por meio de uma operação de <em>append</em>.</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Requisição tem corpo</th> + <td>Sim</td> + </tr> + <tr> + <th scope="row">Resposta bem-sucedida tem corpo</th> + <td>Sim</td> + </tr> + <tr> + <th scope="row"><a href="https://developer.mozilla.org/pt-BR/docs/Glossary/Safe">Seguro</a></th> + <td>Não</td> + </tr> + <tr> + <th scope="row"><a href="https://developer.mozilla.org/pt-BR/docs/Glossary/Idempotent">Idempotente</a></th> + <td>Não</td> + </tr> + <tr> + <th scope="row"><a href="https://developer.mozilla.org/pt-BR/docs/Glossary/Cacheable">Cacheável</a></th> + <td>Somente se as informações de atualização estiverem incluídas</td> + </tr> + <tr> + <th scope="row">Permitido em <a href="/pt-BR/docs/Web/Guide/HTML/Forms">formulários HTML</a></th> + <td>Sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">POST /index.html +</pre> + +<h2 id="Exemplo">Exemplo</h2> + +<p>Um simples formulário utilizando o padrão <em>content type</em> <code>application/x-www-form-urlencoded</code>:</p> + +<pre class="line-numbers language-html">POST / HTTP/1.1 +Host: foo.com +Content-Type: application/x-www-form-urlencoded +Content-Length: 13 + +say=Hi&to=Mom</pre> + +<p>Um formulário utilizando o <em>content type</em> <code>multipart/form-data</code>:</p> + +<pre>POST /test.html HTTP/1.1 +Host: example.org +Content-Type: multipart/form-data;boundary="boundary" + +--boundary +Content-Disposition: form-data; name="field1" + +value1 +--boundary +Content-Disposition: form-data; name="field2"; filename="example.txt" + +value2</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "POST", "4.3.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_com_navegadores">Compatibilidade com navegadores</h2> + +<p class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estruturados. Se você quiser contribuir com os dados, consulte <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e envie-nos um <em>pull request</em>.</p> + +<p>{{Compat("http.methods.POST")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPHeader("Content-Disposition")}}</li> +</ul> |