Nesta página, descrevemos como emitir solicitações HTTP e HTTPS e receber respostas usando o serviço de busca de URL.
Solicitações
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.
Por exemplo, 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
. Esse cabeçalho não pode ser modificado e será adicionado automaticamente se a solicitação for enviada pelo 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 é 10 segundos.
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.
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:
Limit | Amount |
---|---|
Request size | 10 megabytes |
Request header size | 16 KB (Note that this limits the maximum length of the URL that can be specified in the header) |
Response size | 32 megabytes |
Maximum deadline (request handler) | 60 seconds |
Maximum deadline (Task Queue and cron job handler) | 60 seconds |