aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/http/methods/post/index.html
blob: f8655a166d03c007cb55ebed16161a82638b75bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
---
title: POST
slug: Web/HTTP/Methods/POST
tags:
  - HTTP
  - Metodo de pedido
  - Referencia
translation_of: Web/HTTP/Methods/POST
---
<div>{{HTTPSidebar}}</div>

<div>El <strong>método</strong> <strong>HTTP <code>POST</code> </strong> envía datos al servidor. El tipo del cuerpo de la solicitud es indicada por la cabecera  {{HTTPHeader("Content-Type")}}.</div>

<div></div>

<div>La diferencia entre <code>PUT</code>{{HTTPMethod("POST")}} es que <code>PUT</code> es idempotente: llamarlo una o varias veces sucesivamente tiene el mismo efecto (no tiene efecto secundario // colateral), mientras que varios <code>POST</code> idénticos pueden tener efectos adicionales, como pasar una orden muchas veces.</div>

<div></div>

<p>Una solicitud <code>POST</code> es tipicamente enviada por un <a href="/en-US/docs/Web/Guide/HTML/Forms">formulario HTML</a> y resulta en un cambio en el servidor. En este caso, el tipo de contenido es seleccionado poniendo la cadena de texto adecuada en el atributo<dfn> {{htmlattrxref("enctype", "form")}} del elemento {{HTMLElement("form")}} o el atributo {{htmlattrxref("formenctype", "input")}}  de los elementos {{HTMLElement("input") }}</dfn><dfn>{{HTMLElement("button")}} :</dfn></p>

<ul>
 <li><code>application/</code><dfn><code>x-www-form-urlencoded</code>: Los valores son codificados en tuplas llave-valor separadas por <code>'&amp;'</code>, con un <code>'='</code>  entre la llave y el valor. Caracteres no-Alfanumericos en ambas (llaves, valores) son {{glossary("percent encoded")}}: Esta es la razón por la cual este tipo no es adecuado para usarse con datos binarios (use <code>multipart/form-data</code> en su lugar)</dfn></li>
 <li><code><dfn>multipart</dfn><dfn>/form-data</dfn></code><dfn>: Cada valor es enviado como un dato de bloque ("input de un formulario"), con un delimitador como separador definido por el usuario ("espacio entre campos"). Éstas llaves son colocadas en el <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">Content-Disposition</span></font> , la cual es cómo está estructurada cada parte del HEADER en una petición HTTP</dfn></li>
 <li><dfn><code>text/plain</code></dfn></li>
</ul>

<p>Cuando la solicitud <code>POST</code> es enviada por otro método distinto a un formulario HTML  — por ejemplo mediante una {{domxref("XMLHttpRequest")}} — el cuerpo puede aceptar cualquier tipo. Como se describe en la especificación HTTP 1.1, el método <code>POST</code> está diseñado para permitir un método uniforme que cubra las siguientes funciones:</p>

<ul>
 <li>Modificación de recursos existentes.</li>
 <li>Publicar un mensaje en un tablón de anuncios, grupo de noticias, lista de correos, o grupos similares de artículos;</li>
 <li>Agragar un nuevo usuario a través de un modal de suscripciones;</li>
 <li>Proveer un conjunto de datos, como resultado del envío de un formulario, a un proceso data-handling.</li>
 <li>Extender una base de datos a través de una operación de concatenación.</li>
</ul>

<table class="properties">
 <tbody>
  <tr>
   <th scope="row">Pedir como cuerpo</th>
   <td></td>
  </tr>
  <tr>
   <th scope="row">Respuesta válida como cuerpo</th>
   <td></td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Seguro")}}</th>
   <td>No</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Idempotente")}}</th>
   <td>No</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Cacheable")}}</th>
   <td>Sólo si incluye nueva información</td>
  </tr>
  <tr>
   <th scope="row">Permitido en <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML forms</a></th>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Sintaxis">Sintaxis</h2>

<pre class="syntaxbox notranslate">POST /index.html
</pre>

<h2 id="Ejemplo">Ejemplo</h2>

<p>Un formulario simple empleando el tipo de contenido por defecto <code>application/x-www-form-urlencoded</code>:</p>

<pre class="line-numbers  language-html notranslate">POST / HTTP/1.1
Host: foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13

say=Hi&amp;to=Mom</pre>

<p>Un formulario usando el tipo de contenido <code>multipart/form-data</code>:</p>

<pre class="notranslate">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="Especificaciones">Especificaciones</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Title</th>
  </tr>
  <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="Navegadores_compatibles">Navegadores compatibles</h2>

<p>{{Compat("http.methods.POST")}}</p>

<h2 id="Ver_también">Ver también</h2>

<ul>
 <li>{{HTTPHeader("Content-Type")}}</li>
 <li>{{HTTPHeader("Content-Disposition")}}</li>
</ul>

<div id="__kantu_mark__"></div>