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
- POST /index.php?variableget=algo HTTP/1.0
- Host: www.dubasdey.com
Content-Length: 9- User-Agent: Agente/1.0
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
HTTP/1.1 200 OK Date: Fri, 25 Aug 2006 16:01:30 GMT Server: Apache X-Powered-By: PHP/4.4.0 Status: 200 OK Vary: Accept-Encoding Content-Length: 486 Connection: close Content-Type: text/html; charset=ISO-8859-1 "http://www.w3.org/TR/REC-html40/loose.dtd" >- 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












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
08/09/2008 12:48
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
09/09/2008 8:07