Um pedido HEAD pode reduzir o tráfego do corpo da resposta ao comparar proxies. Num handle PycURL existente já configurado com o destino, o proxy e os tempos limite:

handle.setopt(pycurl.NOBODY, True)
handle.perform()
ttfb = handle.getinfo(pycurl.STARTTRANSFER_TIME)
prepared = handle.getinfo(pycurl.PRETRANSFER_TIME)

Leia estes valores após uma transferência bem-sucedida e antes de fechar o handle. NOBODY seleciona HEAD para HTTP; não remove os cabeçalhos do pedido, a negociação com o proxy nem o tráfego TLS.

STARTTRANSFER_TIME é o tempo decorrido desde o início da transferência até ao primeiro byte da resposta. Inclui a preparação e o processamento no servidor, por isso mede este percurso e este destino, não o atraso isolado do proxy. PRETRANSFER_TIME cobre a preparação do protocolo; mesmo subtraindo-o, resta trabalho além do próprio proxy.

Mantenha o destino, a política de redirecionamento e as condições de reutilização da ligação consistentes em todas as comparações. Os tempos de redirecionamento acumulam-se. Uma ligação nova e um túnel reutilizado respondem a perguntas de desempenho diferentes.

O HEAD também pode comportar-se de forma diferente do GET. Use-o para uma observação leve de acessibilidade ou de tempo e, depois, valide o método real separadamente ao escolher um percurso para uma aplicação.

Artigos relacionados