WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Utilización de la compresión con los nodos HTTP y SOAP

Puede configurar los nodos HTTP y SOAP para que utilicen la compresión y descompresión HTTP al enviar y recibir mensajes.

Los nodos se pueden configurar para que compriman los mensajes de solicitud, acepten y descompriman las respuestas y descompriman los mensajes de entrada.

Información básica

El transporte HTTP da soporte al envío de datos comprimidos. Se utilizan campos de cabecera HTTP específicos para indicar que los datos están comprimidos y qué técnica de compresión se ha utilizado para la compresión. Cuando un cliente HTTP realiza una solicitud HTTP, puede especificar que acepta una respuesta comprimida, y también qué tipos de datos comprimidos acepta. Las tres técnicas de compresión soportadas por el transporte HTTP son GZIP, deflate y compress.

El campo Accept-Encoding se utiliza en una solicitud HTTP para indicar qué codificaciones se aceptan en un mensaje de respuesta a la solicitud. Este campo se utiliza para especificar los valores de gzip, deflate, compress e identity, que no son sensibles a mayúsculas y minúsculas. Un valor de identity indica que los datos no deben estar comprimidos. Un carácter comodín de * indica que se acepta cualquier codificación. El campo Accept-Encoding también puede estar vacío, lo que indica que no se acepta ninguna codificación.

El campo de cabecera Content-Encoding indica la codificación que se aplica a los datos y puede contener las señales de gzip, deflate y compress, pero no la de identity. Cuando se comprimen datos para un mensaje HTTP, el campo Content-Encoding contiene el nombre de la técnica de compresión que se ha utilizado, lo que permite al destinatario identificar el esquema de compresión y descomprimir correctamente los datos del mensaje.

El campo de cabecera TE se utiliza en una cabecera de solicitud para indicar qué codificaciones de transferencia de extensión aceptará en la respuesta. Este campo es similar al campo Accept-Encoding.

El campo Transfer-Encoding es similar al campo Content-Encoding, excepto que es una propiedad del mensaje y no de la entidad. El campo Transfer-Encoding se utiliza principalmente para indicar que un mensaje de respuesta está fragmentado. Es posible recibir una cabecera Transfer-Encoding que indique otras codificaciones de transferencia, como por ejemplo "chunked, gzip". En este caso, el algoritmo gzip se aplica a la transferencia de los datos, no a los datos reales propiamente dichos.

Compresión HTTP en WebSphere Message Broker

WebSphere Message Broker da soporte a la compresión y la descompresión con los nodos HTTP y SOAP que utilizan los campos Accept-Encoding y Content-Encoding de la siguiente manera:

Al comprimir un mensaje HTTP de solicitud, el nodo comprueba el campo Content-Encoding para determinar si los datos del mensaje ya están comprimidos. Si los datos ya están comprimidos en el esquema especificado, no es necesario realizar ninguna compresión adicional. Sin embargo, si los datos existentes ya están comprimidos en una codificación que no se ha especificado en las propiedades del nodo, el nodo comprime adicionalmente la corriente de bits comprimida utilizando la codificación especificada en las propiedades del nodo. El valor del campo Content-Encoding se actualiza para indicar la codificación adicional que se ha aplicado a los datos. Por ejemplo, un valor Content-Encoding de deflate,gzip indica que el mensaje debería descomprimirse primero utilizando deflate y luego descomprimirse adicionalmente utilizando gzip.

Los nodos HTTP y SOAP no dan soporte a valores de calidad en el campo Accept-Encoding, lo que permite que un usuario especifique una ponderación preferida de los tipos de compresión para las respuestas. Los valores de calidad en el campo Accept-Encoding se ignoran.

Utilización de la compresión HTTP con los nodos HTTP y SOAP

Los nodos de solicitud puede solicitar y procesar respuestas comprimidas. Puede configurar los nodos de solicitud para indicar que la compresión en las respuestas está permitida, y el nodo descomprime automáticamente una respuesta comprimida. La cabecera Accept-Encoding se establece para indicar que se aceptan las técnicas de compresión GZIP y deflate. Si la cabecera Accept-Encoding ya está establecida, el nodo no la altera temporalmente.

Si los nodos de solicitud o AsyncResponse reciben una respuesta comprimida con GZIP o deflate, ésta se descomprime y cualquier indicación de cabecera de que el mensaje está comprimido se elimina. Si los nodos reciben una respuesta comprimida no válida o una función de compresión no reconocida, se genera una excepción que indica que los datos no se han podido descomprimir.

Los nodos de solicitud también pueden enviar solicitudes comprimidas. Puede configurar el nodo para que especifique qué técnica de compresión se utiliza para las solicitudes comprimidas que envía. El valor de la cabecera Content-Encoding se establece para indicar la compresión que se utiliza. Puede alterar temporalmente este valor en el entorno local para un mensaje individual. Si altera temporalmente el entorno local con un valor que el nodo no reconoce, se utiliza el valor de nodo existente para Usar compresión.

Los nodos de entrada pueden descomprimir los datos de entrada que se han comprimido utilizando el esquema de compresión GZIP y deflate. Si el nodo de entrada recibe un mensaje que no está comprimido de forma válida, se devuelve un mensaje de error al cliente y el mensaje de entrada no se propaga al flujo de mensajes. Esto puede ocurrir si:
  • La cabecera Content-Encoding está establecida en una función de compresión no reconocida
  • El cuerpo del mensaje no se ha comprimido correctamente utilizando el valor Content-Encoding indicado.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:45


Tema de conceptoTema de concepto | Versión 8.0.0.5 | bc19010_