Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Http Request --> Como funciona

Estas en el tema de Http Request --> Como funciona en el foro de Frameworks JS en Foros del Web. Muy bien, basicamente AJAX trabaja con http request (peticiones HTTP) para lo cual es necesario conocer muy bien como trabaja el protocolo HTTP. Hay varios ...
  #1 (permalink)  
Antiguo 05/07/2005, 08:35
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 18 años, 11 meses
Puntos: 4
Http Request --> Como funciona

Muy bien, basicamente AJAX trabaja con http request (peticiones HTTP) para lo cual es necesario conocer muy bien como trabaja el protocolo HTTP.
Hay varios metodos que se utilizan en HTTP, los mas comunes son GET y POST, pero tambien estan PUT, DELETE, HEAD, para obtener mas info sobre esto pueden leer aki
HTTP/1.1 Definicion de MEtodos

y tambien hay que conocer los estados en que una peticion puede estar
aki les dejo una url donde esta la lista de codigos de estados en los que se puede encontrar una peticion:
HTTP Status Codes

ahora bien, para entender AJAX es necesario que entiendan que su funcionabilidad depende del browser, ya que todos los browser tienen un standard por asi decirlo de lenguaje, pero como sabran, el monopolio de microsoft tiene su "propio" "standard" por lo cual tenemos que identificar mediante una funcion primero que tipo de browser tenemos, esto lo podemos hacer con la siguiente funcion:

Código PHP:
var xmlhttp=false;
 try {
  
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (
e) {
  try {
   
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (
E) {
   
xmlhttp false;
  }
 }
if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
  
xmlhttp = new XMLHttpRequest();

con esta funcion creamos el objeto para el browser que se esta utilizando.
en IE, creas el objeto usando:
new ActiveXObject("Msxml2.XMLHTTP") o
new ActiveXObject("Microsoft.XMLHTTP")
dependiendo de la version de MSXML instalada.
En mozilla y safari usan XMLHttpRequest()

ahora, bien aunque la definicion de AJAX nos diga que trabaja con XML no significa que que sea extrictamente para XML, podemos trabajar tambien con textos, htmls etc, pero esto mas adelante.

pero. como hacemos una peticion?
es muy sencillo el siguiente ejemplo lo describira:'
Código PHP:
xmlhttp.open("GET""test.txt",true);
 
xmlhttp.onreadystatechange=function() {
  if (
xmlhttp.readyState==4) {
   
alert(xmlhttp.responseText)
  }
 }
 
xmlhttp.send(null
expliquemos linea por linea
xmlhttp.open("GET","test.txt",true);
dice practicamente al browser que "obtenga" el texto contenido en el archivo test.txt que esta ubicado en el mismo lugar donde se esta ejecutando la pagina.

xmlhttp.onreadystatechange=function(){
esto significa que cuando cambie el estado de la peticion que haga lo que sigue
if (xmlhttp.readyState==4) {
alert(xmlhttp.responseText)

si el estado de la peticion es 4 (que esta todo bien) que mande un mensaje de texto con lo que contenia el archivo test.txt (esto es xmlhttp.responseText) es decir, que con xmlhttp.responseText le estamos diciendo que lo que nos esta devolviendo la funcion OPEN y el metodo GET lo debe interpretar como un TEXT, hay que conocer todas las opciones que tenemos aki, como mencione antes, que es parte del protocolo http ok.
bueno aki dejo por el momento, luego sigo adicionando lo ue falta para crear algo peque en AJAX.
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #2 (permalink)  
Antiguo 05/07/2005, 14:37
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Excelente, el foro de Ajax recien empieza y ya hay una FAQ

Saludos
  #3 (permalink)  
Antiguo 06/07/2005, 12:24
Avatar de Mignola  
Fecha de Ingreso: noviembre-2002
Ubicación: Templo Shaolin
Mensajes: 167
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola,

Pues una observacion, si ven que me equivoco, corriganme. Para el metodo post hay que especificarle:
http.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
para que la pagina que recibe los datos lo reconozca como pos no? pues bien, Opera 8 no lo tiene este metodo...
¿Alguna idea?

Hasta Pronto!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:11.