2010-10-13 12 views
5

¿Alguien ha agregado correctamente un encabezado Content-Length a las páginas regulares de ColdFusion (estoy usando CF9)? Estoy configurando un nuevo servidor detrás de un equilibrador de carga de Cisco con compresión: el cuadro se niega a comprimir cualquier cosa sin este encabezado, pero CF no lo pasa de manera predeterminada.ColdFusion: cómo configurar el encabezado Content-Length

<cfheader name="Content-Length" value="something"> configurará el encabezado, pero encontrar el valor correcto es un problema.

Cualquier puntero sería muy apreciado.

+0

No sé si tiene control sobre el equilibrador de carga, pero creo que la configuración predeterminada de los equilibradores de carga de Cisco es que solo comprime contenido de más de 512 bytes de longitud. Pero este es un valor de configuración (tamaño mínimo en la configuración de compresión), y puede modificarse, y estoy bastante seguro de que se puede modificar para comprimir todo (con el encabezado adecuado de aceptación en la solicitud, obv.) –

Respuesta

0

No me gusta esta idea, pero ¿podría hacer algún tipo de envoltorio con cfsavecontent y tomar la longitud de eso?

Algo así como:

<cfsetting enablecfoutputonly="yes"> 
<cfsavecontent variable="testVar"> 
    <cfinclude template="myPage.cfm"> 
</cfsavecontent> 
<cfheader name="Content-Length" value="#len(testVar)#"> 
<cfoutput>#testVar#</cfoutput> 

No estoy seguro de si el recuento sería fuera debido a problemas de espacio en blanco.

+0

fácil, #trim (testVar) #? – Henry

3

creo que he resuelto:

<cfheader name="Content-Length" value="#getPageContext().getCFOutput().getBuffer().size()#">

que me quedé en O nRequestEnd() y la caja de Cisco está felizmente comprimiendo distancia.

Gracias por la gente de entrada.

+0

Habló demasiado pronto. El tamaño() es casi siempre correcto ... – Geoff

Cuestiones relacionadas