martes, agosto 26, 2014

Códigos de estado de HTTP

Los códigos de estado 1XX
Son quienes informan al navegador de algunas acciones que se van a realizar:
100 (Continue): el navegador puede continuar realizando su petición.
101 (Switching Protocols): el servidor acepta el cambio de protocolo propuesto por el mismo navegador, un ejemplo sería un cambio de HTTP 1.0 a HTTP 1.1
102 (Processing (WebDAV)): aquí el servidor está procesando la petición del navegador pero aun no ha terminado (evitando que el navegador piense que la petición se ha perdido cuando no es recibida ninguna respuesta).
103 (Checkpoint): se va a reanudar una petición POST o PUT que fue abortada.
Los códigos de estado 2XX

Nos indican que la petición del navegador se ha recibido, procesado y respondido correctamente:
200 (Ok): indica que la petición del navegador se ha completado con éxito.
201 (Created): indica que la petición del navegador se ha completado con éxito y como resultado, se ha creado un nuevo recurso.
202 (Accepted): aquí la petición del servidor se ha aceptado y se está procesando en estos momentos, por lo que todavía no hay respuesta alguna.
203 (Non-Authoritative Information): la petición se ha completado con éxito, pero su contenido no se ha obtenido de la fuente originalmente solicitada, más bien de otro servidor.
204 (No Content): en este caso la petición se ha completado con éxito pero su respuesta no tienen ningún contenido.
205 (Reset Content): la petición se ha completado con éxito, pero su respuesta no tiene contenidos y además, el navegador tiene que inicializar la página desde la que se realizó la petición.
206 (Partial Content): la respuesta de esta petición sólo tiene parte de los contenidos, tal y como lo solicitó el mismo navegador.
 207 (Multi-Status (WebDAV)): la respuesta consiste en un archivo XML que tiene en su interior varias respuestas y diferentes.
208 (Already Reported (WebDAV)): aquí el listado de elementos DAV ya se notificó previamente.

Los códigos de estado 3XX
Son los que nos indican que el navegador debe realizar alguna acción adicional para que la petición se complete.
300 (Multiple Choices): existe más de una variante para el recurso solicitado por el mismo navegador.
301 (Moved Permanently): aquí el recurso solicitado por el navegador se encuentra en otro lugar y este cambio es permanente (este recurso es muy bueno para sitios SEO).
302 (Moved Temporarily): el recurso solicitado por el navegador se encuentra en otro lugar, aunque sólo por un tiempo limitado. El mismo navegador es redirigido en forma automática a la nueva localización de ese recurso.
303 (See Other): el recurso por el navegador se encuentra en otro lugar. Así, el servidor no redirige automáticamente al navegador, pero le indica que la nueval URI en la que puede obtener el recurso.
304 (Not Modified): en este caso cuando el navegador pregunta si un recurso ha cambiado desde la última vez que se solicitó el servidor responde con este código cuando el recurso no ha cambiado.
305 (Use Proxy): el recurso solicitado por el navegador debe obtenerse por medio del proxy cuya dirección en la cabecera Location de esta misma respuesta.
306 (Switch Proxy): este código lo utilizamos en las versiones que son antiguas de HTTP pero ya no se usa.
307 (Temporary Redirect): el recurso solicitado por el navegador se puede obtener de un lugar diferente, pero sólo para esta petición. Las próximas peticiones pueden seguir utilizando la localización original del recurso.
308 (Permanent Redirect): el recurso solicitado por el mismo navegador se encuentra en otro lugar y este cambio es permanente. Pero a diferencia del código 301, no se permite cambiar el método  HTTP para la nueva petición.
Los códigos de estado 4XX
Nos indican que se ha producido un error cuyo responsable es el navegador:
400 (Bad Request): aquí el servidor no es capaz de entender la petición del navegador porque su sintaxis no es correcta.
401 (Unauthorized): el recurso solicitado por el navegador requiere de autenticación. La respuesta incluye una cabecera de tipo WWW-Authenticate para que el navegador pueda iniciar el proceso de autenticación.
402 (Payment Required): este código está reservado para usos futuros.
403 (Forbidden): la petición del navegador es correcta, pero el servidor no puede responder con el recurso solicitado porque se ha denegado el acceso.
404 (Not Found): el servidor no puede encontrar el recurso solicitado por el navegador y no es posible determinar si esta ausencia es temporal o permanente.
405 (Method Not Allowed): el navegador ha utilizado un método (GET, POST, etc.) no permitido por el servidor para obtener ese recurso.
- See more at: http://www.codejobs.biz/es/blog/2014/07/10/codigos-de-estado-de-http#sthash.quLXkzXV.dpufgggggggggggfgdsgdfsgds
Los códigos de estado 1XX
Son quienes informan al navegador de algunas acciones que se van a realizar:
100 (Continue): el navegador puede continuar realizando su petición.
101 (Switching Protocols): el servidor acepta el cambio de protocolo propuesto por el mismo navegador, un ejemplo sería un cambio de HTTP 1.0 a HTTP 1.1
102 (Processing (WebDAV)): aquí el servidor está procesando la petición del navegador pero aun no ha terminado (evitando que el navegador piense que la petición se ha perdido cuando no es recibida ninguna respuesta).
103 (Checkpoint): se va a reanudar una petición POST o PUT que fue abortada.
Los códigos de estado 2XX

Nos indican que la petición del navegador se ha recibido, procesado y respondido correctamente:
200 (Ok): indica que la petición del navegador se ha completado con éxito.
201 (Created): indica que la petición del navegador se ha completado con éxito y como resultado, se ha creado un nuevo recurso.
202 (Accepted): aquí la petición del servidor se ha aceptado y se está procesando en estos momentos, por lo que todavía no hay respuesta alguna.
203 (Non-Authoritative Information): la petición se ha completado con éxito, pero su contenido no se ha obtenido de la fuente originalmente solicitada, más bien de otro servidor.
204 (No Content): en este caso la petición se ha completado con éxito pero su respuesta no tienen ningún contenido.
205 (Reset Content): la petición se ha completado con éxito, pero su respuesta no tiene contenidos y además, el navegador tiene que inicializar la página desde la que se realizó la petición.
206 (Partial Content): la respuesta de esta petición sólo tiene parte de los contenidos, tal y como lo solicitó el mismo navegador.
 207 (Multi-Status (WebDAV)): la respuesta consiste en un archivo XML que tiene en su interior varias respuestas y diferentes.
208 (Already Reported (WebDAV)): aquí el listado de elementos DAV ya se notificó previamente.

Los códigos de estado 3XX
Son los que nos indican que el navegador debe realizar alguna acción adicional para que la petición se complete.
300 (Multiple Choices): existe más de una variante para el recurso solicitado por el mismo navegador.
301 (Moved Permanently): aquí el recurso solicitado por el navegador se encuentra en otro lugar y este cambio es permanente (este recurso es muy bueno para sitios SEO).
302 (Moved Temporarily): el recurso solicitado por el navegador se encuentra en otro lugar, aunque sólo por un tiempo limitado. El mismo navegador es redirigido en forma automática a la nueva localización de ese recurso.
303 (See Other): el recurso por el navegador se encuentra en otro lugar. Así, el servidor no redirige automáticamente al navegador, pero le indica que la nueval URI en la que puede obtener el recurso.
304 (Not Modified): en este caso cuando el navegador pregunta si un recurso ha cambiado desde la última vez que se solicitó el servidor responde con este código cuando el recurso no ha cambiado.
305 (Use Proxy): el recurso solicitado por el navegador debe obtenerse por medio del proxy cuya dirección en la cabecera Location de esta misma respuesta.
306 (Switch Proxy): este código lo utilizamos en las versiones que son antiguas de HTTP pero ya no se usa.
307 (Temporary Redirect): el recurso solicitado por el navegador se puede obtener de un lugar diferente, pero sólo para esta petición. Las próximas peticiones pueden seguir utilizando la localización original del recurso.
308 (Permanent Redirect): el recurso solicitado por el mismo navegador se encuentra en otro lugar y este cambio es permanente. Pero a diferencia del código 301, no se permite cambiar el método  HTTP para la nueva petición.
Los códigos de estado 4XX
Nos indican que se ha producido un error cuyo responsable es el navegador:
400 (Bad Request): aquí el servidor no es capaz de entender la petición del navegador porque su sintaxis no es correcta.
401 (Unauthorized): el recurso solicitado por el navegador requiere de autenticación. La respuesta incluye una cabecera de tipo WWW-Authenticate para que el navegador pueda iniciar el proceso de autenticación.
402 (Payment Required): este código está reservado para usos futuros.
403 (Forbidden): la petición del navegador es correcta, pero el servidor no puede responder con el recurso solicitado porque se ha denegado el acceso.
404 (Not Found): el servidor no puede encontrar el recurso solicitado por el navegador y no es posible determinar si esta ausencia es temporal o permanente.
405 (Method Not Allowed): el navegador ha utilizado un método (GET, POST, etc.) no permitido por el servidor para obtener ese recurso.
- See more at: http://www.codejobs.biz/es/blog/2014/07/10/codigos-de-estado-de-http#sthash.quLXkzXV.dpuf
Los códigos de estado 1XX
Son quienes informan al navegador de algunas acciones que se van a realizar:
100 (Continue): el navegador puede continuar realizando su petición.
101 (Switching Protocols): el servidor acepta el cambio de protocolo propuesto por el mismo navegador, un ejemplo sería un cambio de HTTP 1.0 a HTTP 1.1
102 (Processing (WebDAV)): aquí el servidor está procesando la petición del navegador pero aun no ha terminado (evitando que el navegador piense que la petición se ha perdido cuando no es recibida ninguna respuesta).
103 (Checkpoint): se va a reanudar una petición POST o PUT que fue abortada.
Los códigos de estado 2XX

Nos indican que la petición del navegador se ha recibido, procesado y respondido correctamente:
200 (Ok): indica que la petición del navegador se ha completado con éxito.
201 (Created): indica que la petición del navegador se ha completado con éxito y como resultado, se ha creado un nuevo recurso.
202 (Accepted): aquí la petición del servidor se ha aceptado y se está procesando en estos momentos, por lo que todavía no hay respuesta alguna.
203 (Non-Authoritative Information): la petición se ha completado con éxito, pero su contenido no se ha obtenido de la fuente originalmente solicitada, más bien de otro servidor.
204 (No Content): en este caso la petición se ha completado con éxito pero su respuesta no tienen ningún contenido.
205 (Reset Content): la petición se ha completado con éxito, pero su respuesta no tiene contenidos y además, el navegador tiene que inicializar la página desde la que se realizó la petición.
206 (Partial Content): la respuesta de esta petición sólo tiene parte de los contenidos, tal y como lo solicitó el mismo navegador.
 207 (Multi-Status (WebDAV)): la respuesta consiste en un archivo XML que tiene en su interior varias respuestas y diferentes.
208 (Already Reported (WebDAV)): aquí el listado de elementos DAV ya se notificó previamente.

Los códigos de estado 3XX
Son los que nos indican que el navegador debe realizar alguna acción adicional para que la petición se complete.
300 (Multiple Choices): existe más de una variante para el recurso solicitado por el mismo navegador.
301 (Moved Permanently): aquí el recurso solicitado por el navegador se encuentra en otro lugar y este cambio es permanente (este recurso es muy bueno para sitios SEO).
302 (Moved Temporarily): el recurso solicitado por el navegador se encuentra en otro lugar, aunque sólo por un tiempo limitado. El mismo navegador es redirigido en forma automática a la nueva localización de ese recurso.
303 (See Other): el recurso por el navegador se encuentra en otro lugar. Así, el servidor no redirige automáticamente al navegador, pero le indica que la nueval URI en la que puede obtener el recurso.
304 (Not Modified): en este caso cuando el navegador pregunta si un recurso ha cambiado desde la última vez que se solicitó el servidor responde con este código cuando el recurso no ha cambiado.
305 (Use Proxy): el recurso solicitado por el navegador debe obtenerse por medio del proxy cuya dirección en la cabecera Location de esta misma respuesta.
306 (Switch Proxy): este código lo utilizamos en las versiones que son antiguas de HTTP pero ya no se usa.
307 (Temporary Redirect): el recurso solicitado por el navegador se puede obtener de un lugar diferente, pero sólo para esta petición. Las próximas peticiones pueden seguir utilizando la localización original del recurso.
308 (Permanent Redirect): el recurso solicitado por el mismo navegador se encuentra en otro lugar y este cambio es permanente. Pero a diferencia del código 301, no se permite cambiar el método  HTTP para la nueva petición.
Los códigos de estado 4XX
Nos indican que se ha producido un error cuyo responsable es el navegador:
400 (Bad Request): aquí el servidor no es capaz de entender la petición del navegador porque su sintaxis no es correcta.
401 (Unauthorized): el recurso solicitado por el navegador requiere de autenticación. La respuesta incluye una cabecera de tipo WWW-Authenticate para que el navegador pueda iniciar el proceso de autenticación.
402 (Payment Required): este código está reservado para usos futuros.
403 (Forbidden): la petición del navegador es correcta, pero el servidor no puede responder con el recurso solicitado porque se ha denegado el acceso.
404 (Not Found): el servidor no puede encontrar el recurso solicitado por el navegador y no es posible determinar si esta ausencia es temporal o permanente.
405 (Method Not Allowed): el navegador ha utilizado un método (GET, POST, etc.) no permitido por el servidor para obtener ese recurso.
- See more at: http://www.codejobs.biz/es/blog/2014/07/10/codigos-de-estado-de-http#sthash.quLXkzXV.dpuf

jueves, agosto 21, 2014

Genexus - DownLoad desde campos Blob

Se tiene una tabla con archivos PDF almacenados en un campo blob, se requiere hacer la descarga desde estos campos blob.
 
Para el ejemplo se tiene la siguiente estructura de la tabla:
 
Nombre de la Tabla: reportespdf
   ReportesPdfSec                       N(5)    * Autonumerico
   ReportesPdfNombre               C(40)
   ReportesPdfArchivo               Blob;
 
Para ello es necesario crear un WebPanel con una grilla donde se despliegue los registros que contiene dicha tabla.
Seguidamente cada la fila de grilla permitirá hacer un link al procedimiento para descargar el archivo PDF.
 
En el Evento Load, debe tener lo siguiente:
Event Load
&DescargarPdf.Link = DESCARGASPDF.Link(ReportesPdfSec)
EndEvent

 
El procedimiento para descargar es el siguiente:
Setear sus propiedades:
     MAIN PROGRAM = TRUE
     CALL PROTOCOL = HTTP.
 
Crear las variables &HttpResponse, &ReportePdfSec 
 
Reglas:
parm(In: &ReportePdfSec);
 
Source: 
&HttpResponse.AddHeader(‘Content-type’, ‘application/download’)

// Leer Archivo de Reportes PDF 
For Each ReportesPdfSec 
       Where ReportesPdfSec = &ReportesPdfSec 
        Defined By  ReportesPdfNombre 
        &HttpResponse.AddHeader(‘Content-Disposition’, ‘attachment; filename=’ + ReportesPdfNombre)
&HttpResponse.AddFile(ReportesPdfArchivo)
EndFor
Return

miércoles, agosto 13, 2014

Ejecutar un programa al momento de iniciar Tomcat

En el WEB:XML, debe constar lo siguiente:

<servlet>
    <servlet-name>programaAutomatico</servlet-name>    // Nombre del Programa a Ejecutarse
    <servlet-class>nombre.paquete</servlet-class>          // Nombre del Paquete
    <load-on-startup>1</load-on-startup>
</servlet>
 
 
Programa en Java
 
package nombre.paquete;
 
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
 

@SuppressWarnings("serial")
public class programaAutomatico extends HttpServlet
{
 
    public void init() throws ServletException
    {
          System.out.println("----------");
          System.out.println("---------- Programa Automatico Ejecutado Correctamente ----------");
          System.out.println("----------");
    }
}