Esta página descreve como emitir pedidos HTTP e HTTPS e receber respostas através do serviço URL Fetch.
Pedidos
Em Go, o pacoteurlfetch
oferece urlfetch.Transport, uma implementação da interface
http.RoundTripper
que faz pedidos através da infraestrutura do App Engine.
Protocolos de pedidos
Uma aplicação pode obter um URL através de HTTP ou HTTPS. O protocolo que deve ser usado é inferido através da análise do protocolo no URL de destino.
O URL a obter pode usar qualquer número de porta nos seguintes intervalos:
80–90440–4501024–65535
Se a porta não for mencionada no URL, a porta é implícita no protocolo. Os pedidos HTTP ocorrem na porta 80 e os pedidos HTTPS ocorrem na porta 443.
Métodos de pedido
Se emitir pedidos através do serviço URL Fetch, pode usar qualquer um dos seguintes métodos HTTP:
GETPOSTPUTHEADDELETEPATCH
Um pedido pode incluir cabeçalhos HTTP e, para pedidos POST, PUT e PATCH, um payload.
Encaminhamento por proxy de pedidos
Tenha em atenção que o serviço URL Fetch usa um proxy compatível com HTTP/1.1 para obter o resultado.
Para impedir que uma aplicação cause uma recursão infinita de pedidos, um controlador de pedidos não pode obter o seu próprio URL. Ainda é possível causar uma recursão infinita por outros meios. Por isso, tenha cuidado se a sua aplicação puder ser feita para obter pedidos de URLs fornecidos pelo utilizador.
Cabeçalhos do pedido
A sua aplicação pode definir cabeçalhos HTTP para o pedido de saída.
Por exemplo, quando envia um pedido HTTP POST, se um cabeçalho Content-Type não for definido explicitamente, o cabeçalho é definido como x-www-form-urlencoded.
Este é o tipo de conteúdo usado pelos formulários Web.
Por motivos de segurança, não é possível modificar os seguintes cabeçalhos pela aplicação:
Content-LengthHostVaryViaX-Appengine-Inbound-AppidX-Forwarded-ForX-ProxyUser-IP
Estes cabeçalhos são definidos com valores precisos pelo App Engine, conforme
adequado. Por exemplo, o App Engine calcula o cabeçalho Content-Length a partir dos dados do pedido e adiciona-o ao pedido antes de o enviar.
Os seguintes cabeçalhos indicam o ID da aplicação da app requerente:
User-Agent. Este cabeçalho pode ser modificado, mas o App Engine anexa uma string de identificador para permitir que os servidores identifiquem pedidos do App Engine. A string anexada tem o formato"AppEngine-Google; (+http://code.google.com/appengine; appid: APPID)", em queAPPIDé o identificador da sua app.X-Appengine-Inbound-Appid. Este cabeçalho não pode ser modificado e é adicionado automaticamente se o pedido for enviado através do serviço URL Fetch.
Limites de tempo dos pedidos
Pode definir um prazo ou um tempo limite para um pedido. Por predefinição, o tempo limite de um pedido é de 10 segundos.
Ligações seguras e HTTPS
A sua aplicação pode obter um URL de forma segura através do HTTPS para estabelecer ligação a servidores seguros. Os dados de pedido e resposta são transmitidos através da rede de forma encriptada.
Por predefinição, o proxy URL Fetch valida o anfitrião com o qual contacta. Este comportamento permite à API detetar ataques do tipo man-in-the-middle entre o App Engine e o anfitrião remoto quando usa HTTPS.
Responses
Se usar a API URL Fetch, tenha em atenção que o serviço URL Fetch devolve todos os dados de resposta, incluindo a resposta, o código, os cabeçalhos e o corpo.
Por predefinição, se o serviço URL Fetch receber uma resposta com um código de redirecionamento, o serviço segue o redirecionamento. O serviço segue até cinco respostas de redirecionamento e, em seguida, devolve o recurso final.
Use a obtenção de URLs no servidor de desenvolvimento
Quando a sua aplicação está em execução no servidor de desenvolvimento do App Engine no seu computador, as chamadas ao serviço URL Fetch são processadas localmente. O servidor de desenvolvimento obtém URLs contactando diretamente anfitriões remotos a partir do seu computador, usando qualquer configuração de rede que o computador esteja a usar para aceder à Internet.
Quando testar as funcionalidades da sua aplicação que obtêm URLs, certifique-se de que o seu computador consegue aceder aos anfitriões remotos.
Quotas e limites para a obtenção de URLs
Para ver informações sobre as quotas do serviço de obtenção de URL, consulte o artigo Quotas. Para ver a utilização atual da quota da sua aplicação, aceda à página Detalhes da quota naGoogle Cloud consola.
Aceda à página Detalhes da quota
Além disso, aplicam-se os seguintes limites à utilização do serviço URL Fetch:
| Limite | Montante |
|---|---|
| Tamanho do pedido | 10 megabytes |
| Tamanho do cabeçalho do pedido | 16 KB (tenha em atenção que isto limita o comprimento máximo do URL que pode ser especificado no cabeçalho) |
| Tamanho da resposta | 32 megabytes |