Geeks i d\'altres



Temas



Archivos

Enlaces


Method HEAD

El meu objetiu es que el server web sigi el més estandar posible. Una de les pases per aconseguir, és que pugi acceptar més methods que simplement GET's.
Per a ser "validat" com a HTTP 1.1 basta acceptar GETs i HEADs, i l'unic que diferència el HEAD del GET es que amb el HTTP Response no s'inclouen les dades que es demanen al HTTP Request. Com ja sabeu, un response es forma a partir dels headers i les dades; ido en el cas d'una petició HEAD domés es retornen els headers, les dades NO.

Aixó es molt facil d'implementar. Per a saber si ens trobam davant un method GET o HEAD, empram aquest codi (una vegada que ja hem lletgit el HTTP Request del socket).

if(request[0] == 'G' && request[1] == 'E' && request[2] == 'T') {
     method = GET;
     longi = 5;
}
else {
     method = HEAD;
     longi = 6;
}


Si algú té una suggerencia per a fer la comprovació anterior més "elegant", sóc tot orelles ;). Com podeu imaginar, abans hem definit el GET i el HEAD ..

#define GET 0
#define HEAD 1


Ara que ja sabem si tenim un GET o un HEAD, el que em de fer es afegir les dades en cas de que sigi un GET.

if(method == GET) {
     strcat(response,data);
}


Com veis, és una "pixarada de ca", com es diu per aqui. Encara no he penjat la nova versió perque aquests dies estic sense ordenador, perque la font d'alimentació es va cansar de treballar sense descans i va dir prou, i com que no he pogut probar-ho com toca no vull penjar un codi que façi coses extranyes (encara que no seria la primera vegada .. :D).

El pròxim objectiu: que presenti imatges, i no tan sols texte plà i pagines html.
Fins una altra!
19/07/2005 21:38 Enlace permanente. Tema: Programació.

Comentarios » Ir a formulario

gravatar.com
Autor: servomac

L'html d'aquesta pàgina és una cagada.

ACLARACIÓ: Els "&nbsp" que es veuen al codi es suposa que són espais en blanc (SP).

Fecha: 19/07/2005 16:11.


gravatar.com
Autor: Guti

Más elegante lo puedes hacer con un else if para el HEAD en vez de un if.

Más eficiente utilizando memcmp en vez de la comparación caracter a caracter.

Fecha: 19/07/2005 18:07.


gravatar.com
Autor: servomac

En el tema del else tienes razón, porque aunque es posible que me pidan algo que no sea ni GET ni HEAD, no tendré código aducuado para actuar en consequencia, así que te haré caso y todo lo que no sea un GET se tratara como HEAD :P.

La función memcmp no la conozco, pero en un momento me lo miro.

¡Gracias compañero!

Fecha: 19/07/2005 21:36.


gravatar.com
Autor: seterom

hey! tu blog esta muy bien... de geek frustrado yo creo que nada... res en catala? : ) saludos desde asturias y sigue asi con el blog.

Fecha: 20/07/2005 00:12.


gravatar.com
Autor: Guti

Me refería a un else if, no un else.

Respecto a memcmp, te permite comparar dos bloques de memoria, tambíen valdría strcmp, pero memcmp suele ser más eficiente, sobretodo si conoces la longitud de la cadena con la que comparar.

Fecha: 20/07/2005 11:07.


Añadir un comentario




No será mostrado.






Blog creado con Blogia. Derechos de autor con . Estadísticas. Suscribir RSS. Admin.
Blogia apoya: Fundación Josep Carreras; Emprendedor ven a Iniciador Aragón.