Nesta página, você saberá como os aplicativos do App Engine usam o serviço de busca de URL para emitir solicitações HTTP e HTTPS e receber respostas.
Para ver exemplos de código que demonstram como emitir solicitações HTTP e HTTPS pelo
aplicativo App Engine, consulte
Como emitir solicitações HTTP(S).
Para ver o conteúdo do pacote urlfetch
, consulte as referências do pacote urlfetch
.
Pedidos
O App Engine usa o serviço de busca de URL para emitir solicitações de saída. Em Go, o pacoteurlfetch
fornece
urlfetch.Transport
, uma implementação da
interface http.RoundTripper
que faz solicitações usando a infraestrutura do App Engine.
Protocolos de solicitação
Um aplicativo pode buscar um URL usando HTTP ou HTTPS. O protocolo que precisa ser usado é inferido observando-se o protocolo no URL de destino.
O URL buscado pode usar qualquer número de porta nestes intervalos:
80
-90
440
-450
1024
-65535
.
Se a porta não for mencionada no URL, ela estará implícita no protocolo. As solicitações HTTP ocorrem na porta 80
e as HTTPS ocorrem na porta 443
.
Métodos de solicitação
Se você emitir solicitações por meio do serviço de busca de URL, poderá usar qualquer um dos seguintes métodos HTTP:
GET
POST
PUT
HEAD
DELETE
PATCH
Uma solicitação pode incluir cabeçalhos HTTP e, para solicitações POST
, PUT
e PATCH
, um payload.
Proxy das solicitações
O serviço de busca de URL usa um proxy compatível com HTTP/1.1 para buscar o resultado.
Para evitar que um aplicativo cause uma recursão interminável de solicitações, não é permitido que um gerenciador de solicitações busque o próprio URL. Ainda é possível causar uma recursão interminável com outros meios, por isso tenha cuidado se o aplicativo puder ser usado para buscar solicitações de URLs fornecidas pelo usuário.
Cabeçalhos de solicitação
O aplicativo pode configurar cabeçalhos HTTP para a solicitação de saída.
Ao enviar uma solicitação HTTP POST
, se um cabeçalho Content-Type
não for definido explicitamente, ele será definido como x-www-form-urlencoded
.
Esse é o tipo de conteúdo usado pelos formulários da Web.
Por motivos de segurança, os cabeçalhos abaixo não podem ser modificados pelo aplicativo:
Content-Length
Host
Vary
Via
X-Appengine-Inbound-Appid
X-Forwarded-For
X-ProxyUser-IP
Esses cabeçalhos são definidos com valores precisos pelo App Engine, conforme
apropriado. Por exemplo, o Google App Engine calcula o
cabeçalho Content-Length
com base nos dados de solicitação e o adiciona à
solicitação antes do envio.
Os seguintes cabeçalhos indicam o ID do app solicitante:
User-Agent
. Este cabeçalho pode ser modificado, mas o App Engine anexará uma string de identificação para permitir que os servidores identifiquem as solicitações do App Engine. A string anexada tem o formato"AppEngine-Google; (+http://code.google.com/appengine; appid: APPID)"
, em queAPPID
é o identificador do app.X-Appengine-Inbound-Appid
. Este cabeçalho não pode ser modificado e é adicionado automaticamente se a solicitação for enviada por meio do serviço de busca de URL.
Tempo limite das solicitações
É possível definir um prazo ou tempo limite para uma solicitação. Por padrão, o tempo limite de uma solicitação é 60 segundos. O prazo máximo é de 60 segundos para solicitações HTTP(S), para fila de tarefas e solicitações de cron job.
Conexões seguras e HTTPS
Seu aplicativo pode buscar um URL de maneira segura por meio do uso do HTTPS para se conectar a servidores seguros. Dados de solicitação e resposta são transmitidos pela rede em formato criptografado.
Na Go API, por padrão, o proxy de busca de URL valida o host que está entrando em contato. Esse comportamento permite que a API detecte ataques intermediários entre o App Engine e o host remoto ao usar o HTTPS.
Respostas
Se você usar a API URL Fetch, o serviço de busca de URL retornará todos os dados de resposta, inclusive a resposta, o código, os cabeçalhos e o corpo.
Por padrão, se o serviço de busca de URL receber uma resposta com um código de redirecionamento, ele acompanhará esse redirecionamento. O serviço acompanhará até cinco respostas de redirecionamento e, em seguida, retornará o recurso final.
Como usar a busca de URL no servidor de desenvolvimento
Quando o aplicativo está em execução no servidor de desenvolvimento do App Engine no computador, as chamadas para o serviço de busca de URL são processadas localmente. O servidor de desenvolvimento busca URLs por meio do contato com hosts remotos diretamente do seu computador usando a configuração de rede do computador para acessar a Internet.
Ao testar os recursos do seu aplicativo que buscam URLs, verifique se o computador pode acessar os hosts remotos.
Cotas e limites para busca de URL
Para informações sobre cotas de serviço de busca de URL, consulte Cotas. Para ver o uso atual da cota do aplicativo, acesse a página "Detalhes da cota" no console do Google Cloud.
Acessar a página "Detalhes da cota"
Além disso, os seguintes limites aplicam-se ao uso do serviço de busca de URL:
Limite | Valor |
---|---|
Tamanho da solicitação | 10 megabytes |
Tamanho do cabeçalho da solicitação | 16 KB (observe que isso limita o comprimento máximo do URL que pode ser especificado no cabeçalho) |
Tamanho da resposta | 32 megabytes |
Prazo máximo (gerenciador de solicitação) | 60 segundos |
Prazo máximo (Fila de tarefas e gerenciador de cron job) | 60 segundos |
Próximas etapas
Execute exemplos de código e veja as instruções sobre como emitir solicitações pelo aplicativo em Como emitir solicitações HTTP(S).