Edgardo nicolas Moretti wrote:
>
> Sr Dewey:
> Muy interesante su aporte, pero que le puedo decir me gusta mas
> la forma que propuse antes.
>
> En cuanto a los errores progongo los siguientes:
>
> 401 Error: sintaxis. (Refiere a error en el formato de la solicitud)
>
> 402 Error: largo de usuario, contrase�a o archivo incorrecto.
> 403 Error: disco lleno. (Por si pido un archivo y no queda espacio en el disco r�gido local.)
> 404 Error: versi�n incompatible
> 405 Error: Petici�n No implementada (Si se env�a una petici�n diferente a Get o Put)
>
> 406 Error: Vencido el tiempo de solicitud
> 407 Error: No puede establecerse la conexi�n
> 408 Error: No se puede encontrar el servidor
>
> 501 Error: usuario o contrase�a incorrecto
> 502 Error: archivo no encontrado
>
> 503 Error: agotado espacio en disco
> 504 Error: sin permiso para escribir
> 505 Error: sin permiso para leer
>
> 506 Error: Petici�n No implementada (por si pasan una petici�n diferente a Get o Put)
> 507 Error: Versi�n no soportada
> 508 Error: Ya existe un archivo con ese nombre
> 509 Error: Vencio el tiempo de respuesta del Cliente
>
> 510 Error: No se pudo abrir la base de datos (donde se guarda el usuario y passwr)
>
>
>
>
> El 13 de diciembre de 2009 17:20, Ramiro Alonso <
ninja...@gmail.com
> <mailto:
ninja...@gmail.com>> escribi�:
>
> Edgardo Dewey wrote:
>
> Estimados,
> investigando un poco encontramos que es bastante importante
> conocer el tama�o de la informaci�n (header,datos) a
> enviar/recibir (para las funciones recv y send y/o read y
> write). Es por esto que proponemos el siguiente mecanismo:
> /--------------------------- GET
> -----------------------------------------/
> El Cliente solicita un archivo al servidor de la siguiente
> manera:
> ----------------------------------------------------------------
> | Tama�o | GET | | nombre | | version | \n |
> | Header (2B) | (3B)| (1B) | archivo (15B)|(1B) | (2B) |(2B)|
> ----------------------------------------------------------------
> | usuario (10B) | \n |
> | |(2B)|
> ----------------------------------------------------------------
> | password (10B) | \n |
> | |(2B)|
> ----------------------------------------------------------------
> | \n |
> | (2B) |
> ----------
> Incluimos un campo donde se indica el tama�o del header (en
> Bytes) de manera de poder diferenciarlo de los datos.
> A lo cual el servidor responder� con el siguiente paquete:
> --------------------------------------------
> | Tama�o | STATUS XXX | \n |
> | Header (2B) | (10B) |(2B)|
> --------------------------------------------
> | nombre archivo | \n |
> | (15B) |(2B)|
> --------------------------------------------
> | Tama�o de archivo | \n |
> | (5B) |(2B)|
> --------------------------------------------
> | \n | Payload... | | (2B)|
> (10240B) |
> --------------------------------------------
> Status XXX, siendo XXX el c�digo de error.
> Limitamos el tama�o del archivo a 10M.
> /--------------------------- PUT
> -----------------------------------------/
> El cliente envia:
> ----------------------------------------------------------------
> | Tama�o | PUT | | nombre | | version | \n |
> | Header (2B) | (3B)| (1B) | archivo (15B)|(1B) | (2B) |(2B)|
> ----------------------------------------------------------------
> | usuario (10B) | \n |
> | |(2B)|
> ----------------------------------------------------------------
> | password (10B) | \n |
> | |(2B)|
> ----------------------------------------------------------------
> | \n | Payload...
> | | (2B) | |
> ----------------------------------------------------------------
> El servidor responder�:
> --------------------------------------------
> | Tama�o | STATUS XXX | \n |
> | Header (2B) | (10B) |(2B)|
> --------------------------------------------
> El tama�o de cada campo lo asignamos seg�n:
> Nombre del archivo-----------15 caracteres
> Usuario----------------------------10 caracteres
> password-------------------------10 caractreres
> Con estos valores m�ximos el tama�o del header no superar�
> los 99 caracteres. Es por esto que se determino el tama�o del
> header en 2Bytes.
> Por otra parte consideramos conveniente que el tama�o del PDU
> sea 2 bytes para reconocer el campo "Tama�o header" m�s
> f�cilmente.
> C�digos de errores para el status propuestos:
> _40X C�digos de ERROR del lado del Cliente_:
> C�digos locales:
> 401 Error: sintaxis. (Refiere a error en el formato de la
> solicitud)
> 402 Error: largo de usuario, contrase�a o archivo incorrecto.
> (Si se presentan caracteres inv�lidos)
> 403 Error: disco lleno. (Por si pido un archivo y no queda
> espacio en el disco r�gido local.)
> 404 Error: Petici�n No implementada (Si se env�a una petici�n
> diferente a Get o Put)
> 405 Error: Vencido el tiempo de solicitud
> 406 Error: No puede establecerse la conexi�n
> 407 Error: No se puede encontrar el servidor
> 408 Error: Archivo mayor a tama�o maximo _50x: C�digos de
> error del lado del Servidor:_
> Codigos remotos(va al cliente):
> 501 Error: usuario o contrase�a incorrecto
> 502 Error: archivo no encontrado
> 503 Error: agotado espacio en disco
> 504 Error: sin permiso para escribir
> 505 Error: Versi�n no soportado
> 506 Error: Vencido el tiempo de espera (cuando recibe un PUT).
> El 13 de diciembre de 2009 12:36, Moretti Nicolas
> <
mon...@gmail.com <mailto:
mon...@gmail.com>
> <mailto:
mon...@gmail.com <mailto:
mon...@gmail.com>>> escribi�:
>
>
> Me parece que Ramiro tiene raz�n, el tama�o tiene que ser
> incorporado en una
> l�nea
> nueva.
>
> �les parece que venga despu�s de password?
>
> Quedando:
>
> PUT �nombre_archivo� v�n�mero_version� "\n"
> �USER�"\n"
> �PASS�"\n"
> "longitud""\n"
> "\n"
> �DATOS���.. EOF�
>
> Donde longitud es el tama�o en bytes del archivo expresado como
> string.
>
> En cuanto al "\n" despu�s del EOF ya se hab�a hablado y se
> elimino.
> Seg�n la RFC la versi�n aumenta de a 1, creo que ya vamos
> por la 4
> o 5.
>
>
> En cuanto a la respuesta del servidor ante un pedido de get, se
> propuso
>
> "STATUS xxx" �nombre_archivo� "Tama�o en bytes""\n"
> "\n"
> �DATOS���.. EOF�"\n"
>
> Lo cambiaria por:
>
> "STATUS" "xxx""\n"
> �nombre_archivo�"\n"
> "Tama�o en bytes""\n"
> "\n"
> �DATOS���.. EOF�
>
> Lo veo mas practico al tiempo de programar...
> Siendo que al analizar la primera l�nea es un status com�n
> y seg�n
> el c�digo
> "xxx" (que es un string) se puede interpretar si es un
> status de
> un get u
> otro status
> Por eso propongo, que "xxx" se reemplazado por GET, es decir
>
> "STATUS" GET"\n"
> �nombre_archivo�"\n"
> "Tama�o en bytes""\n"
> "\n"
> �DATOS���...EOF�
>
> Agregar�a los siguientes errores
>
> 507 Error: Ya existe un archivo con ese nombre
>
> 409 Error: No se pudo descargar el archivo en su totalidad
>
>
>
> saludos
>
>
>
>
> Devuelta, no conviene que la longitud del header vaya en una linea
> nueva? De esta forma no modificamos la primer linea, y
> simplificamos la programacion.
>
>
Me suena raro que empiece a recibir informaci�n con el tama�o. Incluso
antes que el GET.
El tama�o del encabezado viene especificado con la versi�n del
protocolo. uno sabe que lineas tiene que recibir y el m�ximo tama�o que
pueden ocupar, podr�a ser informaci�n redundante.
En mi opinion, el encabezado no se tendria que modificar antes del
numero de versi�n, pero bueno, hay que discutirlo. Si les parece lo ponemos.
Saludos