Suponha que o seguinte trecho de código em Python 3 seja ex...

Próximas questões
Com base no mesmo assunto
Q834596 Programação

Suponha que o seguinte trecho de código em Python 3 seja executado com sucesso:


import urllib.request

site=urllib.request.urlopen("http://site.ufsm.br")


Considere as afirmações a seguir.

I → Os atributos site.code e o método site.getcode( ) apresentam o mesmo valor.

II → É possível visualizar o código-fonte ao executar str(site).

III → O método site.info( ) armazena metainformações da página acessada, como os cabeçalhos HTTP.

IV → Ao acessar o conteúdo armazenado em site.info( )['Date'] é possível identificar a data em que a requisição HTTP foi realizada pelo cliente.


Estão corretas

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B - apenas I e III.

A questão exige conhecimento sobre a biblioteca urllib.request do Python 3, que é utilizada para abrir e ler URLs. Vamos analisar cada afirmação para entender o gabarito:

  • I → Os atributos site.code e o método site.getcode() apresentam o mesmo valor.
    Esta afirmação é verdadeira. O atributo site.code e o método site.getcode() retornam o mesmo valor, que é o código de status HTTP da resposta recebida. Por exemplo, se a página foi acessada com sucesso, ambos devem retornar o código 200.
  • II → É possível visualizar o código-fonte ao executar str(site).
    Esta afirmação é falsa. Executar str(site) não retornará o código-fonte da página; isso retornará uma representação em string do objeto de resposta HTTP. Para acessar o conteúdo da página, você usaria o método site.read() ou site.read().decode('utf-8') para obter o código-fonte HTML da página.
  • III → O método site.info() armazena metainformações da página acessada, como os cabeçalhos HTTP.
    Esta afirmação é verdadeira. O método site.info() realmente retorna um objeto que contém os cabeçalhos HTTP da resposta e é semelhante a um dicionário.
  • IV → Ao acessar o conteúdo armazenado em site.info()['Date'] é possível identificar a data em que a requisição HTTP foi realizada pelo cliente.
    Esta afirmação é falsa. O cabeçalho 'Date' em uma resposta HTTP geralmente indica a data e a hora em que a mensagem foi enviada pelo servidor, não quando a requisição foi realizada pelo cliente.

Então, baseando-nos na análise das afirmações, a alternativa correta é a B, já que apenas as afirmações I e III estão corretas.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

II: ERRADO. Não É possível visualizar o código-fonte ao executar str(site). Quando você executa o programa, a saída será site

IV: ERRADO. Ao acessar o conteúdo armazenado em site.info( )['Date'] não é possível identificar a data em que a requisição HTTP foi realizada pelo cliente. As bibliotecas http do Python não suportam a verificação de data da última modificação, mas o httplib2 fazem.

como que o cidadão ia saber esses detalhes do urllib no dia da prova, considerando que há inúmeras outras bibliotecas no Python?

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo