Você está na página 1de 23

Aplicações e Serviços de

Internet
Serviço WEB

1
1
Serviço WEB
Conteúdo
– O que é o serviço WEB?
– O que é uma URL?
– Como funciona o protocolo HTTP?
– O que são Cookies?
– O que são Web caches?

2
2
WWW: World Wide Web

O serviço World-Wide-Web ou WWW ou W3 ou Web


oferece uma interface gráfica uniforme para um conjunto de
serviços.
Começou em 1989 à o primeiro browser: março 1993
A normalização do WWW é realizada no âmbito do
Consórcio W3 (www.w3.org), sendo algunas das normas
posterioirmente publicadas pela IETF como RFCs.
IETF – Internet Enginnering Task Force
RFC – Request For Comments.

3
WWW: World Wide Web
• A ideia de um mundo onde cada pedaço de informação tem
uma referência pela qual pode ser acedido;
• Um sistema de endereçamento (URL - Uniform Resource
Locator), que permite endereçar vários tipos de objectos
acessíveis através de protocolos já em uso;
• Um protocolo de nível aplicação (HTTP – Hypertext Transfer
Protocol) oferecido pelos servidores WWW genuínos para
transferência de ficheiros entre clientes e servidores;
• Uma linguagem de hipertexto com marcas de formatação
(HTML - Hypertext Markup Language) que todos os clientes
WWW devem entender, e que é usada para a transmissão de
informação, tais como texto, imagens, menus e informação
sobre a formação da informação no cliente.
4
WWW: Aspectos fundamentais
• Os servidores funcionam como repositórios de informação
• A estruturação da informação baseia-se em “hyperlinks /
hipermédia”: cada documento referencia outros
• Os browsers são programas que fornecem a interface humana
do web, por forma a:
• permitir a “navegação” dinâmica através dos “hyperlinks
• apresentar interface intuitiva, generalizada e permite lidar
com múltiplos formatos e tipos de recursos
• interpretar o conteúdo dos documentos, lidando
automaticamente com vários formatos (texto, som, imagem,
…) via funcionalidades internas ou de programas externos
• melhorar desempenho, gerando uma cache local dos últimos
documentos (e imagens, etc.) que foram acedidos
5
URL: Uniform Resource Locator

• Uma página Web é identificada por um endereço electrónico único


denominado URL
ü Os endereços URL não se limitam a identificar páginas Web
ü Permitem a uniformização da referência de recursos na Internet

6
URL: Uniform Resource Locator
URL = scheme://host[:port]/[path][?queryString]

– scheme: indica ao Browser que deverá contactar o servidor


designado no endereço, utilizando o protocolo indicado: http
(Web); ftp (FTP); news (News);...
– host: identifica máquina (servidor) onde está alojado o
documento (ex. página Web), sendo responsável pela resposta
aos pedidos pelo documento
– port: porta a usar na conexão, pode ser omitida, nesse caso
usa-se uma por defeito em função do protocolo;
– path: é a localização precisa do documento no servidor. Se
omitido considera-se index.html (típicamente). Case-sensitive.
– queryString: lista dinâmica de parámetros nomeados
7
URL: Uniform Resource Locator
• Exemplo de um endereço na Internet (URL):
https://fenix.tecnico.ulisboa.pt/homepage/ist12076/a
presentacao

– scheme: https => o documento é uma página Web


– host: fenix.tecnico.ulisboa.pt
• nome do servidor = www (nome comum a um servidor
Web)
– domínio da entidade = fenix.tecnico.ulisboa.pt
• domínio de topo = pt (domínio Português)
– caminho: homepage/ist12076/apresentacao
• nome do documento = index.html (página Web)
• localização do documento no servidor =
/homepage/ist12076/apresentacao/
8
HTTP: HyperText Transfer Protocol

• cliente/servidor
• cliente: browser envia
pedidos, recebe, interpreta
e mostra os objectos.
• servidor: o servidor Web
envia os objectos em
resposta aos pedidos
• HTTP 1.0: RFC 1945
• HTTP 1.1: RFC 2068
• HTTP 2.0: RFC 7540
9
HTTP: Características
HTTP: usa o transporte TCP:
• O cliente abre una conexão TCP para a porta 80 do servidor
• O cliente envia “Request” HTTP
• O servidor devolve “Response” HTTP
• A conexão TCP é fechada
NB: os passos em itálicos podem se repetir N vezes em HTTP
1.1

!
HTTP é “stateless”: o servidor não mantêm nenhuma informação sobre
as conexões dos clientes – tudo é passado via Request-Response
O servidor só pode Responder quando recebe um Request
10
Como funciona o HTTP
O que se passa quando é solicitado a um browser que aceda a um recurso
especificado por um URL, como por exemplo:

https://www.bbc.co.uk/news/world-asia-china-49317975
1. O browser faz o parsing do URL
2. Solicita ao DNS o endereço do servidor (news.bbc.co.uk)
3. O DNS responde com 212.58.244.66 por exemplo
4. O browser abre uma conexão TCP para o porto 80 de 212.58.244.66
5. Envia então o Request: GET /news/world-asia-china-49317975 seguido
de uma linha em branco
6. O servidor responde com esse documento, embrulhado numa Response
7. O browser lê o documento através do canal TCP
8. O browser fecha a conexão
9. O browser começa a interpretação do documento e abre novas conexões
para ir buscar as imagens indicadas no mesmo
11
As mensagens Request HTTP - 1

Pedido (Request):

12
As mensagens Request HTTP - 2

Exemplo:

método GET /somedir/page.html HTTP/1.0


User-agent: Mozilla/4.0
cabeçalhos Accept: text/html, image/gif,image/jpeg
Accept-language:fr
(extra carriage return, line feed)

13
As mensagens Request HTTP - 3
Método Uso
GET Requer a leitura de uma página
Envía os dados do argumento “data” para o
POST
servidor
HEAD Requer a leitura do cabeçalho de uma página

PUT* Requer o acrescentar de dados a uma página

DELETE* Apagar una página

TRACE* Ecoar pedido recibido

* Estes métodos são pouco usados na prática


14
As mensagens Resposta HTTP - 1
Resposta:

15
As mensagens Resposta HTTP - 2

Exemplo:
versão Código estado e frase

HTTP/1.0 200 OK
Date: Thu, 06 Aug 1998 12:00:15 GMT
cabeçalhos Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
data data data data data ...

16
Cabeçalhos (headers)
Cabeçalho Tipo Conteúdo
User-Agent Pedido Informação sobre o browser e a sua plataforma
Accept Pedido Os tpos de páginas que o cliente suporta
Accept-Language Pedido As línguas suportadas
Host Pedido Nombre DNS do servidor
Cookie Pedido Cookies previamente definidas pelo servidor
Date Ambos Data e hoa de envioda mensagem
Server Resposta Informação sobre o servidor
Last-Modified Resposta Data e hora de última modificação da página
Set-Cookie Resposta O servidor quer que o cliente guarde o cookie
Content-Length Resposta Comprimento da página (bytes)
Content-Type Resposta Tipo MIME da página.
17
Cookies
Forma de guardar memória sobre
interacções anteriores de um utilizador

18
Cookies
Cada cookie é uma cadeia de caracteres com até 4KB.

Set-Cookie: NAME=VALUE; Expires=DATE; Path=PATH;


Domain=DOMAIN_NAME; Secure

• NAME=VALUE – define o nome e o valor do cookie. É o


único campo obrigatório, podendo-se usa a forma
simplificada “Set-Cookie: VALUE” para um nome vazio.
• Expires=DATE – define a validade do cookie. Se não for
definido, o cookie desaparece quando se fecha o browser.
Pode-se eliminar um cookie enviando uma data anterior à
data actual.

19
Cookies

Set-Cookie: NAME=VALUE; Expires=DATE; Path=PATH;


Domain=DOMAIN_NAME; Secure

• Domain=DOMAIN_NAME – Define o nome do servidor


(usa-se o endereço IP se não estiver definido). Cada domínio
pode ter até 20 cookies.
• Path=PATH – documento raiz a partir da qual todos os
documento levam o mesmo cookie. Se não for definido, o
cookie apenas é enviado para a página pedida.
• Secure – se seleccionado, o cookie apenas é enviado para
ligações seguras.

20
Cookies
Exemplo:
Set-Cookie: CUSTOMER=213123; path=/;
expires=Wednesday, 09-Nov-07 23:12:40 GMT
Recebe nos pedidos seguintes para todos os documentos:
Cookie: CUSTOMER=213123

O servidor pode definir vários cookies em campos de


cabeçalho Set-cookie separados, que são devolvidos
concatenados (separados por ‘;’) num único campo de
cabeçalho Cookie nos pedidos futuros.

21
Web caches (proxy server)

22
Bibliografia
• Bernardo Luis. Aplicações Internet,
http://tele1.dee.fct.unl.pt/rit2_2004_2005/teo/2_web.pdf

HTTP:
•Resumo - http://en.wikipedia.org/wiki/Http
•Tutorial - http://www.jmarshall.com/easy/http/ (inglés)
•Padrão - http://www.ietf.org/rfc/rfc1945.txt (1.0)
– http://www.ietf.org/rfc/rfc2068.txt (1.1)
– https://tools.ietf.org/html/rfc7540 (2.0)

23

Você também pode gostar