Informática para as Ciências e Engenharias
Versão : B
(Lic.Biologia Celular e Molecular
MI Engenharia Química e Bioquímica)
Aula 5x
Pedro Barahona 2020 / 21
Sumário
• Ciclos WHILE.
• Resolução de problema.
• Strings
§ Relação com vetores.
§ Funções (pre-definidas) sobre strings.
• Introdução às redes de computadores e à Internet.
§ Redes de computadores, endereços e DNS; § Relação cliente/servidor;
§ Web e HTML.
• Obtenção de dados da Internet usando Python.
§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science
Rede de computadores
• Um conjunto de computadores que estão interligados com o objetivo de
trocar informação e partilhar recursos.
Uma rede de computadores é uma
infra-estrutura de troca de mensagens entre os computadores que lhe estão
ligados, permitindo o acesso a recursos remotos e a utilização de aplicações
distribuídas
Rede Computador
Numa transferência intervêm dois
computadores e a rede
• Dois computadores
§ Nó emissor: produz uma sequência de bytes (mensagem). § Nó recetor ou destinatário: recebe essa sequência de bytes. • Rede
§ Meios de interligação: cabos, atmosfera, …
§ Equipamentos dedicados a assegurar que a mensagem é transportada do nó emissor ao nó recetor.
Rede de computadores Unidade Central de Processamento (CPU) Memória central Eletrónica de controlo da rede Unidade Central de Processamento (CPU) Memória central Eletrónica de controlo da rede
Tipos de redes
• Rede local (LAN, Local Area Network)
§ Os computadores estão ligados diretamente, i.e., cada um pode enviar bytes diretamente a qualquer outro.
§ Distância entre computadores tipicamente menor que 1km. • Rede de larga escala (WAN, Wide Area Network)
§ O emissor e o destinatário estão em redes locais distintas e é preciso encaminhar os bytes através de equipamento especializado
(routers e gateways), capaz de escolher as ligações que permitem
Pacotes
• Como é que os bytes enviados pelo emissor chegam ao destinatário, que pode estar a muitos milhares de Kms?
• Cada computador tem um endereço.
• A informação é dividida em pacotes (sequências de bytes) e cada pacote tem o endereço do destinatário.
• Os pacotes são encaminhados individualmente pela rede da origem até ao destino.
Interligação de redes: exemplo
• Exemplo:
§ 2 LANs ligadas por 3 encaminhadores (routers)
Router Router Nó Nó Nó Rede Local 1 Nó Nó Nó Rede Local 2 Router
Ligação via satélite Ligação fibra ótica
Internet e o encaminhamento
de pacotes
• A Internet é uma interligação de redes locais de acordo com normas próprias.
• Na Internet todos os computadores (ou nós) têm um endereço único
(normalmente um número com 32 bits) chamado endereço IP (Internet Protocol).
• Quando uma computador emite um pacote destinado a outro, noutra LAN, entrega-o ao router mais próximo (que está na sua rede local).
• Os routers propagam o pacote até este chegar ao router da rede local do computador de destino, que entrega o pacote ao destinatário.
Nº de máquinas na Internet
Computadores ativos na Internet:
distribuição geográfica
Endereços dos nós
• Endereço IP do nó (numérico / machine friendly) § Constituído por 4 bytes (32 bits)
« representado por 4 números entre 0 e 255, separados por pontos. § Identifica univocamente o computador na Internet.
§ Usado no encaminhamento das mensagens na rede. § Exemplo: 193.136.122.33
• Endereço simbólico do nó (cadeia de caracteres / user friendly) § São aqueles nomes que o utilizador usa.
Nome do nó
www.di.fct.unl.
pt
top-level domain
(TLD)
organização
nome da
máquina
Domain Name System (DNS)
• Serviço de conversão de nomes “user friendly” em nomes “machine friendly”.
§ Este serviço reside num nó da LAN (ou do fornecedor de Internet). • Invocado quando um nó tenta obter o endereço IP
TLDs do Domain Name System [1]
Top-Level Domain
Utilização
biz
Negócios
com
Comercial (EUA)
edu
Educação (EUA)
info
Informação
gov
Governo (EUA)
mil
Militar (EUA)
net
Rede
org
Sem fins lucrativos
• Nas organizações nos Estados Unidos o top-level domain caracteriza o seu tipo de atividade.
TLDs do Domain Name System [2]
• As organizações com sede fora dos Estados Unidos usam um top-level
domain que é o código do país (com 2 letras).
País
TLD
pt
Portugal
uk
Reino Unido
es
Espanha
fr
França
nz
Nova Zelândia
cn
China
…
…
Árvore de domínios do DNS
Domínio raiz Top-level
domains edu gov com … uk pt …
cmu cs
google ibm up unl
fe fct
Sumário
• Ciclos WHILE.
• Resolução de problema.
• Strings
§ Relação com vetores.
§ Funções (pre-definidas) sobre strings.
• Introdução às redes de computadores e à Internet.
§ Redes de computadores, endereços e DNS; § Relação cliente/servidor;
§ Web e HTML.
• Obtenção de dados da Internet usando Python.
§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science
Relação cliente-servidor
• Na maioria das situações, as aplicações que usam a rede são constituídas por dois programas.
• Um servidor pode servir vários clientes em simultâneo. Por exemplo, Browser Por exemplo, Servidor Web Programa
Cliente ProgramaServidor 1. Cliente envia pedido
3. Servidor envia a resposta Recurso 2. Servidor processa o pedido 4. Cliente processa a resposta
Exemplos de servidores
• Servidor Web
§ Recursos: ficheiros e programas.
§ Serviços: obter ficheiros e gerar páginas dinâmicas executando programas a pedido do cliente.
• Servidor de Mail
§ Recurso: ficheiros com mensagens.
§ Serviços: armazena mensagens ou encaminha-as para outros servidores de Mail.
Exemplos de clientes
• Cliente Web § Firefox, § Internet Explorer, § Safari, § Chrome § ... • Cliente de Mail § eM Client, § Mozilla Thunderbird, § OperaMail, § Mail,Protocolos de aplicação
• Conjunto de regras que definem como é que os bytes que circulam na rede são interpretados.
§ O cliente e o servidor têm de acordar previamente os formatos do pedido e da resposta;
§ Existem normas para imensos serviços na Internet. • Exemplos:
§ Protocolos Internet para consultar o DNS e obter o endereço IP para um nome;
§ Protocolos de aplicações de email (SMTP); § Protocolos de Web (HTTP).
Sumário
• Ciclos WHILE.
• Resolução de problema.
• Strings
§ Relação com vetores.
§ Funções (pre-definidas) sobre strings.
• Introdução às redes de computadores e à Internet.
§ Redes de computadores, endereços e DNS; § Relação cliente/servidor;
§ Web e HTML.
• Obtenção de dados da Internet usando Python.
§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science
WWW − World Wide Web [1]
• Página Web
§ Um documento que contém informação (dados ou referências a outros dados).
• Link (hiper-ligação)
§ Uma ligação (referência) a outra página Web. • Protocolo da Web
§ Protocolos de aplicação que permitem a troca de informação entre o cliente (browser) e o servidor Web.
WWW − World Wide Web [2]
• Site Web
§ Conjunto de páginas Web relacionadas umas com as outras. Fisicamente, correspondem a ficheiros armazenados num computador específico.
• Servidor Web - servidor
§ Programa que executa no computador em que a informação está alojada e responde a pedidos para acesso a páginas Web.
• Browser Web - cliente
§ Programa que pede páginas Web pela rede aos servidores e as mostra ao utilizador.
URL − Uniform Resource Locator
• Uma forma normalizada de especificar a localização de uma página Web.
§ Protocolo (pode ser omitido); § Nome do computador;
§ Página.
• Os conteúdos identificados pelos URLs são de diferentes tipos. § Exemplos
:
ficheiros HTML, imagens, audio clips.http
://asc.di.fct.unl.pt/
index.html
Protocolo Computador
Nome DNS ou
endereço IP: x.x.x.x
HTML
• HyperText Markup Language (HTML)
§ A linguagem usada para descrever e formatar uma página Web. § Incluindo colocar imagens e links nas páginas
<h2 id="center">Exercício 1</h2>
<p>Recupere o script <a href="file_contaminacao.m">file_contaminacao.m</a> da aula anterior, que ao ser executado cria a variável <b>contaminacao</b>, que regista a concentração de chumbo no solo em vários pontos e que contem:,
<ol>
<li>na primeira linha, um número de 1 a 20, que identifica o ponto de amostragem;
<li>na segunda linha, a profundidade de cada amostra (em cm); e, <li>na terceira linha, a concentração de Pb, em partes por milhão. </ol>
Sumário
• Ciclos WHILE.
• Resolução de problema.
• Strings
§ Relação com vetores.
§ Funções (pre-definidas) sobre strings.
• Introdução às redes de computadores e à Internet. § Redes de computadores, endereços e DNS;
§ Relação cliente/servidor;
§ Web e HTML.
• Obtenção de dados da Internet usando Python.
§ Alguns slides adaptados do material de suporte do livro N. Dell, J. Lewis, Computer Science
Obter Conteúdo de um URL
• Como é que se pode aceder ao conteúdo associado a um URL?
• No Python, é possível aceder ao conteúdo dum URL, a parkr da biblioteca requests usando a função requests.get.
• A parkr do objeto resposta é possível obter a seguinte informação: § resposta.ok terá True case o pedido tenha sido bem sucedido § resposta.text tem o conteúdo do recurso, como uma string § resposta.encoding permite aceder ao código usado no texto
§ resposta.json tem o conteúdo dum recurso JSON, como um dicionário (veremos mais tarde)
§ resposta.content tem o conteúdo do recurso, como uma sequência de bytes
import requests
Obter Conteúdo de um URL
• Exemplo:
• As páginas web codificadas em HTML, têm muita “formatação”.
• No curso só iremos ler páginas de texto.
In : import requests In : url='https://en.wikipedia.org/wiki/Python_(programming_language)’ In : r = requests.get( url) In : r.ok Out: True In : r.text
Out : '<!DOCTYPE html>\n<html class="client-nojs" lang="en" dir="ltr">...'
Obter Conteúdo de um URL
•
Exemplo:
§Ficheiro de texto
In : import requests In : url_site = 'http://iceb.ssdi.di.fct.unl.pt’ In : url_file = '/2021/teoricas/T05x/texto.txt’In : url = url_site + url_file
In : r = requests.get(url)
In : r.encoding = 'utf-8'
In : r.ok Out: True
In : r.text
Out : 'Este ficheiro só contém texto. Tem um total de 176 caracteres.\n\t115 minúsculas;\n\t2 maiúsculas;\n\t21
espaços;\n\t9 caracteres de pontuação;\n\t14 dígitos;\n\t7 tabs;\n\t8 fins de linha.\n'
Este ficheiro só contem texto. Tem um total de 176 caracteres. 115 minúsculas; 2 maiúsculas; 21 espaços; 9 caracteres de pontuação; 14 dígitos; 7 tabs; 8 fins de linha.
Para saber Mais
• Consultar um dos livros de texto aconselhados.
• Por exemplo:
§ “Think Python: How to Think Like a Computer Scienkst ”: cap. 7 e cap. 8.
§ “Introduckon to Computakon and Programming Using Python”, caps. 2.1, + 2.3.