Destaques
Durante toda a sua existência, o FourA teve apenas uma porta: você nos envia uma URL e nós enviamos a página de volta. Esta semana abrimos uma segunda porta, um endpoint de proxy convencional que você cola em qualquer cliente HTTP, com credenciais geradas no Dashboard. O Proxy Finder também aprendeu a recorrer a uma saída paga em alvos que recusam todas as outras alternativas, e o Auto ficou melhor em lembrar quais saídas funcionam.
Novidades
Aponte qualquer cliente HTTP para nós
Nova seção no Dashboard: ACCESS, depois Proxy. Crie um usuário de proxy e a página fornece a string de conexão exata, com exemplos em curl, Python e Node ao lado. Escolha o tipo de saída, um país e se deseja manter a mesma saída durante uma sequência de requests, e a string é atualizada automaticamente conforme você seleciona as opções.
Por que construir isso se a API já funciona? Algumas tarefas não seguem o modelo de request e response. Um túnel copia os bytes conforme eles chegam: sem envelope JSON, sem buffering. É disso que um arquivo grande ou um streaming de vídeo precisa, e a nossa API nunca foi projetada para fazer isso.
O direcionamento é mais granular nas saídas pagas: região, cidade, rede por nome de ISP e por quanto tempo uma saída permanece sua. Nosso próprio pool opera apenas por país, de propósito. Uma cidade dentro de um país com pouca cobertura tem apenas um punhado de endereços, e um filtro que falha na maior parte do tempo é pior do que nenhum filtro.
Um contraponto claro. Por meio de um túnel direto, é o seu cliente que estabelece a conexão com o site, não nós. Portanto, o trabalho que a nossa API faz por você não está nesse caminho: a flag unblocker, resolução baseada em navegador, regras validate e reprodução de sessão. O túnel oferece as nossas saídas e a nossa largura de banda. A API oferece tudo o que construímos em cima disso. Escolha por tarefa, não por empresa.
Saídas premium e uma resposta que indica qual delas atendeu você
/api/proxy agora aceita um exitClass, seja standard ou premium. O modo premium roteia você por uma saída paga por nós, indicada para os alvos que bloqueiam sistematicamente o nosso próprio pool.
Não envie nada e você terá o comportamento automático: o pool compartilhado tenta primeiro, e uma saída paga entra na busca apenas quando as tentativas anteriores falham. Defina uma classe e nós a respeitamos exatamente. standard nunca escala por conta própria, o que é justamente o objetivo de declará-lo explicitamente.
A response retorna exitClass, para que você sempre saiba qual saída entregou o conteúdo. Um request premium respondido primeiro pelo nosso próprio pool retorna standard, o que é um sucesso, não um downgrade. Se o seu plano não incluir conexões premium, o request será recusado imediatamente, em vez de ser atendido silenciosamente por outra origem.
O uso premium aparece como uma fração da sua largura de banda, nunca como um segundo total: uma linha em Quota, uma coluna em Metrics, uma marcação na linha de Activity correspondente e um card na sua visão geral. O Playground recebeu o controle, e a opção vazia tem uma função estrutural: deixá-la desmarcada não envia nenhum campo, pois "nunca solicitado" e "solicitado para nunca escalar" são requests diferentes.
O Auto lembra o que funcionou
A esteira do Auto sempre registrou quais saídas falharam. Agora ela registra quais entregaram com sucesso, a partir de cada etapa em vez de apenas nas de navegador, e apenas após o conteúdo passar pela mesma verificação que decide se entregaríamos a página de volta. Uma saída não pode ser marcada como válida para uma página que não retornaríamos para você.
Os bloqueios também expiram em seu próprio tempo. A lista de exclusão de um host costumava ter sua duração renovada toda vez que um novo bloqueio caía sobre ela; agora cada bloqueio expira no cronograma atribuído a ele.
E quando uma execução atinge o limite de navegador do seu plano, a esteira não para mais. Em vez disso, ela processa a etapa de proxy e armazena em cache a saída vencedora para que chamadas posteriores a reutilizem de forma econômica no Single.
O Auto continua sendo o localizador de caminhos, não a rota de produção. Deixe que ele indique qual etapa venceu e retorne a sessão, depois direcione seu volume para /api/single ou /api/browser usando essa sessão diretamente. Esse era o argumento quando o Auto foi lançado e nada disso mudou.
Uma página que não é a página solicitada
Algumas saídas estão dentro de uma rede corporativa filtrada onde o gateway responde no lugar do site. A response retorna 200, com um body, e passava por todas as verificações que tínhamos. Não mais: uma página como essa agora conta como prova de que a saída é inutilizável em vez de prova de que o site respondeu, então a request segue em frente e essa saída deixa de ser preferencial.
Cada padrão de página que mapeamos possui um limite de tamanho, portanto um documento real que coincidentemente contenha essas palavras não pode ser descartado por isso. O tamanho é uma proteção, nunca um sinal. Escrevemos sobre a versão mais ampla disso há duas semanas, quando um bloqueio parece um ponto de dados.
Bastidores
Os rate limits agora são validados contra o teto da sua própria conta antes que qualquer consumo seja cobrado da capacidade compartilhada. Um pico dentro de uma conta é recusado no limite dela, instantaneamente, sem consumir uma vaga pela qual outro usuário esteja aguardando.
O número de execuções em andamento no seu painel vem de uma métrica em tempo real que cada instância republica a cada segundo, não de um contador que poderia subir e nunca mais descer. A interface e o limitador agora leem o mesmo número.
Números
Em nossos próprios testes, abrir um túnel para um host para o qual já havíamos encontrado saídas levou de 63 a 672 ms em uma dúzia de amostras, a maioria abaixo de 260 ms. O primeiro contato com um host que nunca trafegamos é mais lento: segundos, às vezes dezenas de segundos, enquanto o pool é varrido em busca de saídas funcionais para aquele alvo. Isso acontece uma vez por host, não uma vez por request. Amostra pequena, nossos próprios números.
Duas portas trazem uma pergunta que você não tinha na semana passada: este trabalho é sobre os bytes ou sobre conseguir passar pela porta? Para transferir um arquivo grande, o túnel é a opção mais econômica que temos. Tudo o que for mais complexo do que isso continua sendo o propósito da API.