Esta página se aplica à Apigee e à Apigee híbrida.
  
    Confira a documentação da 
    Apigee Edge.
  
  
       
  
Este tópico descreve as propriedades de transporte que podem ser definidas nas configurações de TargetEndpoint
  e ProxyEndpoint
  para controlar as mensagens e o comportamento de conexão. Para ver a cobertura completa das
  opções de configuração TargetEndpoint
  e ProxyEndpoint, consulte a referência da configuração do proxy de API.
Propriedades de transporte TargetEndpoint
O elemento HTTPTargetConnection nas configurações de TargetEndpoint
  define um conjunto de propriedades de
  transporte HTTP. Use essas propriedades para definir configurações no nível de transporte.
As propriedades são definidas em elementos TargetEndpoint HTTPTargetConnection,
  conforme esta configuração de exemplo:
<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>Especificação da propriedade de transporte TargetEndpoint
| Nome da propriedade | Valor padrão | Descrição | 
|---|---|---|
| allow.post.without.content.length | falso | Permite enviar solicitações POST sem conteúdo no corpo. | 
| allow.put.without.content.length | falso | Permite enviar solicitações PUT sem conteúdo no corpo. | 
| allow.tls.session.resumption | verdadeiro | Se os clientes true(padrão) reutilizarem sessões TLS ao fazer novas conexões com o destino.
        Defina comofalsese não quiser reutilizar a sessão TLS. A reutilização de sessão geralmente
        significa tempos de conexão mais curtos, mas alguns destinos podem não suportar a reutilização de sessão ou ter
        dificuldade com isso. | 
| keepalive.timeout.millis | 60.000 | Tempo limite de inatividade para a conexão de destino no pool de conexões. Se a conexão no pool ficar inativa além do limite especificado, ela será fechada. | 
| connect.timeout.millis | 3000 | Tempo limite da conexão de destino. A Apigee retornará um código de status HTTP  | 
| ignore.allow.header.for.405 | verdadeiro | Permite passar o código de status 405 de volta para o cliente. Ao ativar a sinalização, a Apigee retornará o código de status 405 em vez de 502. | 
| io.timeout.millis | 55000 | Se não houver dados a serem lidos pelo número de milissegundos especificado ou se o soquete não estiver pronto para gravar dados pelo número especificado de milissegundos, a transação será tratada como tempo limite. 
 | 
| supports.http11 | verdadeiro | Se for truee o cliente enviar uma solicitação1.1, o destino também receber uma solicitação1.1.
        Caso contrário, a solicitação1.0é enviada para o destino. | 
| use.proxy | true | 
            Se o arquivo de modificações híbridas da Apigee contiver a configuração  
            Se definido como  | 
| use.proxy.tunneling | true | Se esse valor estiver definido como "true" e as configurações de proxy forem especificadas no arquivo de modificação da Apigee híbrida, conforme descrito em Configurar proxy de encaminhamento para proxies de API, as conexões de destino serão definidas para usar o túnel especificado. Se o destino usar TLS/SSL, essa propriedade será ignorada e a mensagem será sempre enviada usando um túnel. | 
| response.payload. | 10M | Por padrão ( 10M). Use a propriedaderesponse.payload.parse.limitpara definir o tamanho máximo de payload que pode ser processado no fluxo de resposta, em megabytes (M). O limite mínimo configurável é de 10M, e o máximo é de 30M. Se a propriedade não estiver definida, o limite padrão será de 10 milhões.Consulte também Tamanho do payload da mensagem. | 
| request.streaming.enabled | falso | Por padrão ( | 
| response.streaming.enabled | falso | Por padrão (falso), os payloads da resposta HTTP são lidos em um buffer, e as políticas que podem operar no payload funcionam conforme o esperado. Nos casos em que os payloads são maiores que o tamanho do buffer (10 MB na Apigee), você pode definir esse atributo como verdadeiro. Quando verdadeiro, os payloads da resposta HTTP não são lidos em um buffer, mas são
          transmitidos por streaming como estão para o fluxo de resposta de  | 
| success.codes | N/A | Por padrão, a Apigee trata o código HTTP  A definição dessa propriedade substitui os valores padrão. Portanto, se você quiser adicionar
          o código HTTP  
 Se você quiser que apenas o código HTTP  
 Ao definir o código HTTP  | 
| compression.algorithm | N/A | Por padrão, a Apigee respeita o tipo de compactação definido (gzip, deflate ou nenhum) para mensagens
          recebidas. Se a solicitação for recebida do cliente usando, por exemplo, a compactação
          gzip, o Apigee Edge encaminhará a solicitação para o destino usando a compactação gzip. Se
          a resposta recebida do destino usar deflate, o Apigee Edge encaminhará a resposta
          ao cliente usando deflate. Os valores aceitos são: 
 Consulte também: A Apigee é compatível com compactação/descompactação com compactação GZIP/deflate? (em inglês). | 
| request.retain.headers. | verdadeiro | Por padrão, o Apigee Edge sempre mantém todos os cabeçalhos HTTP nas mensagens de saída. Quando definido como true, todos os cabeçalhos HTTP presentes na solicitação de entrada são definidos na solicitação de saída. | 
| request.retain.headers | N/A | Define cabeçalhos HTTP específicos da solicitação que devem ser definidos na solicitação de saída para o serviço de destino. Por exemplo, para passar pelo cabeçalho User-Agent,
        defina o valor derequest.retain.headerscomoUser-Agent.
        Vários cabeçalhos HTTP são especificados como uma lista separada por vírgulas. Por exemplo,User-Agent,Referer,Accept-Language. Esta propriedade substituirequest.retain.headers.enabled. Serequest.retain.headers.enabledfor definido comofalse, todos os cabeçalhos especificados na
        propriedaderequest.retain.headersainda serão definidos na mensagem de saída. | 
| response.retain.headers. | verdadeiro | Por padrão, o Apigee Edge sempre mantém todos os cabeçalhos HTTP nas mensagens de saída. Quando definido
        como true, todos os cabeçalhos HTTP presentes na resposta de entrada do serviço de
        destino são definidos na resposta de saída antes de serem transmitidos para oProxyEndpoint. | 
| response.retain.headers | N/A | Define cabeçalhos HTTP específicos da resposta que precisam ser definidos na resposta de
       saída antes de irem para o ProxyEndpoint. Por exemplo, para
        passar pelo
        cabeçalhoExpires, defina o valor deresponse.retain.headerscomoExpires. Vários cabeçalhos HTTP são especificados como uma lista separada por vírgulas. Por
        exemplo,Expires,Set-Cookie. Esta propriedade substituiresponse.retain.headers.enabled. Seresponse.retain.headers.enabledfor definido comofalse, todos os cabeçalhos
        especificados na propriedaderesponse.retain.headersainda serão definidos na
        mensagem de saída. | 
| retain.queryparams. | verdadeiro | Por padrão, o Apigee Edge sempre mantém todos os parâmetros de consulta nas solicitações de saída. Quando definido como true, todos os parâmetros de consulta presentes na solicitação de entrada são definidos na solicitação de saída para o serviço de destino. | 
| retain.queryparams | N/A | Define parâmetros de consulta específicos a serem definidos na solicitação de saída. Por exemplo, para incluir o parâmetro de consulta apikeyda mensagem de solicitação, definaretain.queryparamscomoapikey. Vários parâmetros de consulta são especificados como uma lista separada por vírgulas, por exemplo,apikey,environment. Esta propriedade modificaretain.queryparams.enabled. | 
Propriedades de transporte ProxyEndpoint
Os elementos ProxyEndpoint HTTPTargetConnection definem um conjunto de propriedades de
  transporte HTTP. Essas propriedades podem ser usadas para definir configurações no nível de transporte.
As propriedades são definidas em elementos ProxyEndpoint HTTPProxyConnection,
   conforme esta configuração de exemplo:
<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>
Cabeçalhos de solicitação
  Uma solicitação HTTP recebida inclui os cabeçalhos HTTP enviados pelo cliente.
  Os cabeçalhos com nomes que correspondem ao padrão X-Apigee-* são removidos das solicitações recebidas
  se um cliente as enviar. Esse padrão de nome
é reservado para a Apigee.
Especificação da propriedade de transporte ProxyEndpoint
| Nome da propriedade | Valor padrão | Descrição | 
|---|---|---|
| X-Forwarded-For | falso | Quando definido como verdadeiro, o endereço IP do host virtual é adicionado à solicitação de saída como o valor do cabeçalho HTTP X-Forwarded-For. | 
| request.streaming. | false | Por padrão ( false), os payloads da solicitação HTTP são lidos em um buffer, e
        as políticas que podem
        operar no payload funcionam conforme o esperado. Nos casos em que os payloads são maiores que o
        tamanho do buffer (10 MB na Apigee), é possível definir esse
        atributo comotrue. Quandotrue, os payloads da solicitação HTTP não são lidos
        em um buffer, mas são
        transmitidos por streaming como estão para o fluxo de solicitação deTargetEndpoint. Nesse caso, todas as políticas
        que operam
        no payload no fluxo de solicitação deProxyEndpointsão ignoradas. Consulte também
        Solicitações e respostas de
        streaming. | 
| request.payload. | 10M | Por padrão ( 10M). Use a propriedaderequest.payload.parse.limitpara definir o tamanho máximo de payload que pode ser processado no fluxo de solicitação, em megabytes (M). O limite mínimo configurável é de 10M, e o máximo é de 30M. Se a propriedade não estiver definida, o limite padrão será de 10 milhões.Consulte também Tamanho do payload da mensagem. | 
| response.streaming. | false | Por padrão (falso), os payloads da resposta HTTP são lidos em um buffer, e as políticas que podem operar no payload funcionam conforme o esperado. Nos casos em que os payloads são maiores que
        o tamanho do buffer (10 MB na Apigee), é possível definir esse
        atributo como true. Quandotrue, os payloads da resposta HTTP não são lidos
        em um buffer, mas são
        transmitidos por streaming como estão para o cliente. Nesse caso, todas as políticas que operam no payload no
        fluxo de resposta deProxyEndpointsão ignoradas. Consulte também
        Solicitações e respostas de
        streaming. | 
| compression.algorithm | N/A | Por padrão, a Apigee respeita o tipo de compactação definido (gzip, deflate ou nenhum) para mensagens recebidas. Por
          exemplo, quando um cliente envia uma solicitação que usa a compactação gzip, a Apigee
          encaminha a solicitação ao destino usando a compactação gzip. É possível configurar algoritmos
          de compactação para serem explicitamente aplicados definindo essa propriedade em
           
 Consulte também: A Apigee é compatível com compactação/descompactação com compactação GZIP/deflate? (em inglês). | 
| api.timeout | N/A | Configurar o tempo limite para proxies de API individuais (em milissegundos) É possível configurar proxies de API, mesmo aqueles com
          streaming ativado,
          para expirar após um tempo especificado com um status  
            Por exemplo, para configurar um proxy para expirar após 180.000 milissegundos (três minutos),
           adicione a seguinte propriedade a  <Property name="api.timeout">180000</Property> Não é possível definir essa propriedade com uma variável. | 
| HTTPHeader.allowDuplicates | N/A | Use essa configuração para permitir cabeçalhos duplicados (para cabeçalhos específicos). <HTTPProxyConnection>
  <Properties>
     <Property name="HTTPHeader.allowDuplicates">Content-Type,Authorization</Property>
  </Properties>
</HTTPProxyConnection> | 
| HTTPHeader.multiValued | N/A | Use essa configuração para permitir cabeçalhos duplicados (para cabeçalhos específicos). <HTTPProxyConnection>
  <Properties>
    <Property name="HTTPHeader.multiValued">Content-Type,Authorization</Property>
  </Properties>
</HTTPProxyConnection> | 
Como configurar io.timeout.millis e api.timeout
A operação de io.timeout.millis e de api.timeout
  estão relacionadas. Em todas as solicitações a um proxy de API:
  
- A Entrada (também conhecida como balanceador de carga interno) envia o valor de tempo limite para o processador de mensagens. Esse valor de tempo limite é de 300 segundos por padrão e não é configurável.
- O processador de mensagens define api.timeout:- Se api.timeoutnão for definido no nível do proxy, use o tempo limite definido pela Entrada.
- Se api.timeoutestiver definido no nível do proxy, defina ele no processador de mensagens como o menor tempo limite da Entrada ou como o valor deapi.timeout.
 
- Se 
- 
      O valor de api.timeoutespecifica a quantidade máxima de tempo que um proxy de API precisa para executar da solicitação de API para a resposta.Depois que cada política no proxy de API for executada ou antes que o processador de mensagens envie a solicitação ao endpoint de destino, o processador de mensagens fará o cálculo de api.timeoutmenos o tempo decorrido desde o início da solicitação.Se o valor for menor que zero, quer dizer a quantidade máxima de tempo para processar a solicitação expirou e o processador de mensagens retornará um 504 Gateway Timeout.
- 
      O valor de io.timeout.millisespecifica o tempo máximo que o endpoint de destino tem para responder.Antes de se conectar a um endpoint de destino, o processador de mensagens determina o menor entre api.timeoutmenos o tempo decorrido desde o início da solicitação eio.timeout.millis. Em seguida, ele defineio.timeout.milliscomo esse valor.Se ocorrer um tempo limite durante a gravação da solicitação HTTP ou a leitura da resposta HTTP, 504 Gateway Timeoutserá retornado.