Bio
Mi avatar Blog de un pequeño informaticú y sus ocurrencias y pequeñas notas de ayuda.
AddThis Feed Button
AddThis Social Bookmark Button
Mi escritorio
Mis PCs de Curro actual
Mis PCs de Curro actual
3 de mis PCs de curro actual
Mi mesa de trabajo
Mi mesa de trabajo
IMGP2193
IMGP2192
IMGP2182
Monte Aramo en nubes
This Month Last Year
Categories
links
12
Sep

Usando el protocolo HTTP para realizar peticiones POST

(QR Code)

Voy a explicar un poco como enviar datos por POST usando una conexión TCP/IP, esto nos será de ayuda para poder trabajar con TrackBacks.

El protocolo http es un protocolo de texto plano, en el que se envía una petición a un servidor con un formato determinado y este nos devuelve una respuesta.

Para el envío de una petición a un servidor Web debemos saber el host, el puerto de escucha (usualmente 80) , la ruta a la que queremos acceder y por supuesto los datos que queremos enviar.

Para enviar los datos simplemente debemos crear una petición http, que no es mas que una cadena de texto con un formato especifico que el servidor interpretara para realizar las operaciones necesarias

Ejemplo de petición
  1. POST /index.php?variableget=algo HTTP/1.0
  2. Host: www.dubasdey.com
  3. Content-Length: 9
  4. User-Agent: Agente/1.0
  5. v1=a&v2=

Esta es una cadena de ejemplo para una petición, en la primera línea se indica que realizamos una petición POST a la ruta indicada usando el protocolo HTTP/1.0, también podemos (como es el caso) enviar variables por GET poniéndolas en la ruta a la vez que enviamos los datos por POST.

La segunda línea contiene el HOST al que hacemos la petición, esto es importante sobre todo en hostings virtuales. La tercera línea contiene el tipo de objeto que enviamos, en esta caso “application/x-www-form-urlencoded” por lo que enviaremos los datos como si se tratase de la parte “query” de una url. También indicamos la codificación que estamos usando. La cuarta linea indica en Bytes el contenido de los datos que enviamos (solo los datos q están en la línea 8, no la cabecera) y además después especificamos cual es el agente que esta pendiendo los datos.
Los saltos de línea del ejemplo son OBLIGATORIOS, cada cabecera va en una línea (del estilo \r\n o vbcrlf) y hay 2 saltos de línea para separar las cabeceras de el contenido que enviamos por post.

Como esto es una llamada a la página, una vez que enviamos los datos por el socket el servidor nos dará una respuesta con el contenido de la pagina (incluidas también las cabeceras http de la misma) antes de cerrar la conexión.

ejemplo de una respuesta HTTP
  1. HTTP/1.1 200 OK
  2. Date: Fri, 25 Aug 2006 16:01:30 GMT
  3. Server: Apache
  4. X-Powered-By: PHP/4.4.0
  5. Status: 200 OK
  6. Vary: Accept-Encoding
  7. Content-Length: 486
  8. Connection: close
  9. Content-Type: text/html; charset=ISO-8859-1
  10. "http://www.w3.org/TR/REC-html40/loose.dtd" >
  11. Gracias por los datos

Esto es un ejemplo de una respuesta http afirmativa (código 200) que nos devuelve una pagina HTML.

Y con esto ya sabemos la teoría jeje.

Este articulo puede ser util para Trackbacks


2 Comentarios

  • Lucas Dice:

    Hola, mira yo tambien estoy intentando hacer una comunicacion con sockets (en c) y usar el protocolo http 1.0 y 1.1, y tengo un problema, me piden q las peticiones se hagan a traves de stream y no de string (o sea, flujos, no cadenas)… tienes idea de como podria hacerlo??
    gracias


  • Kuroneko Dice:

    La verdad que C “a secas” hace puff que no lo toco, pero lo único que tienes que hacer me imagino es usar sockets “básicos” con streams/datagramas y convertir las cadenas que quieras enviar en un stream de datos antes de enviarlo


Quieres dejar un comentario?