Veras.
Comenzamos con Peticiones HTTP.
El formato de una petición HTTP es de la siguiente forma:
<linea-petición>
<cabecera>
<linea en blanco>
[<cuerpo-petición>
Para mayor información sobre peticiones HTTP: (Buscar en google)
Concentrate en <cabeceras>
Cuando un navegador realiza una petición HTTP a un servidor, este manda una cadena de consultas llamada <cabeceras>
Las cabeceras proveen al servidor de información adicional que le será util para conocer como debe procesar dicha petición.
Dicho todo esto vamos a ver como luce una petción GET y una POST ambas definidas en HTTP
Petición GET
Código http:
Ver originalGET / HTTP/1.1
Host: www.forosdelweb.com
User-Agent: Mozilla/7.0 (Windows..... etc.......
Connection: Keep-Alive
[cuerpo]
Las cabeceras son: HOST que indica al servidor que la petición se refiere a
www.forosdelweb.com la versión HTTP 1.1 requiere de la cabecerá HOST, la 1.0 no la requiere
User-Agent, indica 2 cosas:
[*] Es la piedra angular de la mayor parte de la lógica para la detección del navedor[*] Indica que es accesible por los scripts tanto del lado del servidor como el del cliente.
Y por ultimo Connection: por defecto Keep-Alive === Te debo la explicación esta no me la sé.
---------------------------------------
Ya para no aburrirte. Vemos un ejemplo de una petición POST
NOTA: Una petición POST proporciona información adicional al servidor.
Código http:
Ver originalPOST / HTTP/1.1
Host: www.forosdelweb.com
User-Agent: Mozilla/7.0 etc.....
Content-Type: application/x-www-form-urlencode
Content-Length: [numero_de_parametros]
Connection: Keep-Alive
[cuerpo de la petición = "PARAMETROS"]
Como puedes ver, las lineas 4,5 y 6 se parecen bastante a lo que tienes en tu código:
Código Javascript
:
Ver originalhttp_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
mmm bueno, supongo que con esto ya obtuviste la respuesta que buscabas.
==> Lo que hacen esas 3 lineas de tu código es configurar las cabeceras que constituirán la petición que se enviará al servidor.
Y como son definiciones de cabeceras hay que tener ciertas consideraciones.
Para resumir: Antes de enviar esas cabeceras debes tener especial cuidado en no imprimir nada desde el servidor.
Por ejemplo, en el caso de trabajar en asincrónico con un PHP, este PHP no deberá tener un echo, print, etc.. o un espacio en blanco antes de la etiqueta <?php porque puede ser interpretado por el navegador, o cualquier contenido html antes de la etiqueta <?php
Si ocurre alguno de estos casos el código no servirá, y como no estás tratando las excepciones o trabajando con lenguaje de servidor, [creo que] el navegador no te indicará error si no solamente tu código no funcionará.
Bueno, etc....
Y la segunda consideración es:
Investiga porque en la linea
Código Javascript
:
Ver originalhttp_request.setRequestHeader("Connection", "close");
dice "
close"
Mira que pasa si le pones "
Key-Alive"
Es todo, un saludo.
EDITO: JAJA no es "
Key-Alive" si no
"Keep-Alive"