Você está na página 1de 12

REDES DE COMPUTADORES

Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP


Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

ARQUITETURA TCP/IP - CAMADA DE APLICAÇÃO - PROTOCOLO


HTTP

ARQUITETURA TCP/IP

A arquitetura TC/IP foi fortemente implementada e é a que é usada atualmente; ela é


a internet.
A camada de aplicações está relacionada com os protocolos/serviços que provêm comu-
nicação entre máquinas.

• Protocolo HTTP

Protocolo HTTP - Hypertext Transfer Protocol:

Hypertext Transfer Protocol é o mesmo que protocolo de transferência de hipertexto.

• Usado globalmente pela www (world wide web) desde 1990.

O conceito de HTTP é o mesmo relacionado à transferência de arquivos, no entanto, a


transferência não é de arquivos de dados, mas de conteúdos e hipertextos.

• Sistemas de informação práticos requerem maior funcionalidade do que simples recu-


peração, incluindo pesquisa, atualização no front-end e anotação.
• HTTP permite um conjunto aberto de métodos para ser usado para indicar o propósito
de uma requisição.

Para o HTTP há sempre a filosofia da arquitetura cliente-servidor. A ideia de uma arqui-


tetura cliente-servidor é que sempre o servidor serve se ele for solicitado. O servidor possui
serviços e ele deve ser chamado. O client (cliente) irá sempre chamar o servidor quando pre-
cisar de algum serviço. E desta forma que o HTTP irá buscar conteúdos relacionados ao www.

• Referência provida pela Uniform Resource Identifier (URI), como uma locação (URL)
ou nome (URN) para indicar em qual recurso um método é para ser aplicado.

Obs.: Uniform Resource Identifier é o mesmo que identificação de resolução uniforme.


ANOTAÇÕES

www.grancursosonline.com.br 1
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

Portanto, a referência pode estar relacionada a uma localização (URL), a uma


identificação (URI), ou a um nome (URN) para recurso a ser aplicado com relação a um
método de busca.

• As mensagens são passadas em um formato similar ao usado pelo Internet Mail e o


Multipurpose Internet Mail Extensions (MIME).
• O Hypertext Transfer Protocol (HTTP) é um conjunto de regras para troca de arquivos
(texto, imagens gráficas, som, vídeo, e outros tipos multimedia na www.
5m

É um hipertexto justamente porque o arquivo pode ser texto, imagens gráficas, som,
vídeo etc.

Obs.: Esta é uma ideia de identificação baseada através do protocolo MIME.

• É um protocolo da camada de “Aplicação” do modelo OSI.

O modelo OSI foi incorporado na arquitetura TCP/IP, que é sinônimo de internet.

• Utilizado para transferência de dados na WWW.


• Utiliza a porta 80 para o servidor.

Obs.: Para porta cliente é usado acima de 1024.

• Usado para a comunicação de “sites”.


• Comunica-se na linguagem HTML (Hipertext Markup Language), contudo para haver
comunicação, com o servidor do “site”, teremos de utilizar comandos próprios do
mesmo, os quais não são em HTML.

Quando se navega na internet é digitado “http://www.”. Este http é justamente a lingua-


gem relacionada ao protocolo a ser utilizada para o www. O protocolo HTTP provê o serviço
baseado no www.
O HTML é para construção de páginas, e a linguagem de comunicação do HTTP é própria.

• A porta 8080 é utilizada dentro dos protocolos UDP como alternativa a porta 80 (TCP).
10m
ANOTAÇÕES

www.grancursosonline.com.br 2
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

Obs.: O protocolo HTTP trabalha, comumente, na porta 80, provida através do TCP na
camada de transporte.

• Conhecida como “http-alt“, ou “http alternate“, ou seja, alterna entre outros protocolos
para desempenhar a sua própria função.
• Funções:
- Criar conexões com o proxy da internet;
- Criar conexões com o servidor de armazenamento em cache;
- Permitir a execução de um servidor da Web através de um usuário;
- O servidor do “site”, teremos de utilizar comandos próprios do mesmo, os quais
não são em HTML.

Conexões HTTP

• O protocolo é basicamente “stateless”, a conexão só permanece aberta entre o cliente


e o usuário durante a transferência. Nenhuma informação é retida pelo servidor sobre
a conexão.

Ou seja, o http só fica ativo com o servidor enquanto está acontecendo a transferência de
arquivo. Depois que a transferência acaba, esta conexão é desfeita.

• Connection estabelecimento de uma conexão pelo cliente ao usuário (quando usar


o porta 80 do TCP/IP - porta “well-known”). Outras portas “non-reserved” podem ser
especificadas no URL;

É possível levantar um site em uma outra porta no servidor, diferente de 80, mas, isso
deve ser especificado ao cliente.

• Request emissão, pelo cliente, de uma mensagem do pedido ao usuário;


• Response emissão, pelo servidor, de uma resposta ao cliente;
• Close fechamento da conexão por ambas as partes.
ANOTAÇÕES

www.grancursosonline.com.br 3
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

Tudo isso caracteriza o stateless. Abre-se a conexão, há o pedido do cliente, vem uma
resposta do servidor com relação ao pedido do cliente, e depois há o fechamento da conexão
por ambas as partes.

Mensagens HTTP – Request ou Response

• Informações textuais codificadas em ASCII, distribuídas por múltiplas linhas.

O código ASCII é aquele que se consegue ler facilmente. Há uma tabela de código ASCII
relacionado à informação para que possa ser visualizada.
15m

• HTTP/1.1, e versões anteriores eram abertamente enviadas através da conexão.


• HTTP/2, dividida em quadros HTTP, resultando em otimização e melhora de
desempenho.

Observe na imagem abaixo como é feita a atividade:

No início da atividade tem-se uma API, há o trabalho relacionado ao browser, os formulá-


rios desenvolvidos através da linguagem HTML e a codificação do servidor de arquivo.
Observe na imagem acima que, ao meio dela, está baseado em várias linhas. No HTTP/2
há vários quadros.
ANOTAÇÕES

www.grancursosonline.com.br 4
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

No protocolo sempre haverá o cabeçalho com seus campos de preenchimento, e a parte


de dados que trará a informação em relação à aplicação, esta parte é chamada de payload.

Estruturas HTTP – Request ou Response

1. Uma linha inicial (start-line) que descreve as requisições a serem implementadas, ou


seu status de sucesso ou falha. Esta linha inicial é sempre única.
Portanto, a primeira linha, que é a start-line, informará qual é a requisição e se ela deu
sucesso ou se deu falha.
2. Um conjunto opcional de cabeçalhos HTTP especificando a requisição, ou descre-
vendo o corpo incluso na mensagem.
3. Uma linha em branco (empty line) indicando que toda meta-informação para a requisi-
ção já foi enviada.
A linha em branco denota que a parte do cabeçalho acabou. Depois da linha em branco
começa uma outra parte relacionada ao protocolo. Esta linha já é da estrutura do protocolo.
A meta-informação é a informação da informação.
4. Um corpo (body) contendo dados associados à requisição (como o conteúdo de um
formulário HTML), ou o documento associado à resposta. A presença do corpo e seu tama-
nho são especificados pela linha inicial e os cabeçalhos HTTP.

Obs.: O MIME ajuda a ter essas informações.


20m

Abaixo é possível ver a estrutura do request e do response:


ANOTAÇÕES

www.grancursosonline.com.br 5
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br


ANOTAÇÕES

www.grancursosonline.com.br 6
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

Na start-line do request há a requisição, já do response, a resposta foi uma falha. No


cabeçalho do request é possível ver o local host, já no response é o servidor, e que possui
uma aplicação apache. Na linha abaixo, no request, é informado o navegador, que é o mozilla
5.0, depois o tipo de linguagem utilizada por ele, a sua codificação, a sua conexão, é infor-
mado que é um pedido, o conteúdo, o comprimento e, por fim, a parte de dados (more data).
No empty line é possível ver a linha em branco; ela faz a distinção da parte que acaba as
múltiplas linhas do cabeçalho para mostrar que começa a parte de dados.
No response trata-se do servidor. É possível ver, também, a empty line que indica que
acabaram as múltiplas linhas. Depois da linha branca vem a parte de dados em que é possí-
vel ver o HTML.

Protocolo HTTP

O que acontece quando solicito um arquivo a um servidor HTTP?

Quando se é um cliente e, com o web-browser, busca uma página, se digita http://www.


(...), isso significa que o cliente está indo chamar um arquivo. Este arquivo irá trazer o que
tiver relação com o HTML dele.
1. O cliente (tipicamente um web browser) faz uma conexão HTTP com o HOST geral-
mente com uma URL;
2. O usuário aceita a conexão.
3. O cliente envia um “request” para um documento -uma linha do texto. Ex.: GET
path_from_URL.
4. O servidor fecha a conexão e busca o documento pedido.
Por ser “stateless”, quando há a comunicação de pedido, a conexão é desfeita e o servi-
dor busca o conteúdo.
25m
5. O servidor reabre a conexão e emite o documento pedido.
6. O cliente aceita o documento.
7. Quando a emissão está completa, o servidor fecha a conexão.
8. O cliente termina a conexão do HTTP.
Requisições HTTP
1. Método utiliza um verbo GET / PUT / POST ou nome HEAD ou OPTIONS para a ação
a ser realizada.
ANOTAÇÕES

www.grancursosonline.com.br 7
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

2. Alvo da requisição
- Caminho absoluto seguido de “?” e o texto da consulta com os métodos;

Observe abaixo, no “head”, o “?”:

- URL completa;

Observe, na imagem abaixo, a URL completa:

- Autoridade de URL -> nome do domínio + porta (opcional), utilizado com CONNECT;

Na imagem abaixo há a autoridade de URL:

- Forma asterisco (*) utilizada com OPTIONS.

Observe, na imagem abaixo, a forma:

3. A versão HTTP define a estrutura do restante da mensagem, atuando como um indica-


dor da versão esperada para uso na resposta.
ANOTAÇÕES

www.grancursosonline.com.br 8
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

Isso se dá porque é a forma que poderá ser processado por quem solicitou. No entanto,
o servidor deve estar preparado para entregar em vários tipos de pedidos de processamento
de display dos vários clientes que solicitam a ele.
Cabeçalho Request HTTP

• Seguem a mesma estrutura básica de um cabeçalho HTTP, cadeia de caracteres


seguida de dois pontos (:) e um valor cuja estrutura depende do cabeçalho:
- Cabeçalhos gerais / Cabeçalhos de Requisição / Cabeçalhos de Entidade.

Primeiramente há os cabeçalhos gerais. Observe na imagem abaixo que na primeira


linha está escrito “post / http/1.1”:

Após as informações dadas no request headers, observe acima, que aparecem as infor-
mações na parte relacionada ao cabeçalho por conexão (general headers). Logo após há a
parte de continuidade do cabeçalho (entity headers).

Corpo do Cabeçalho HTTP

• É a parte final da requisição


• Divididos em:
- Corpos de recurso-simples, consistindo em um único arquivo, definido pelos
dois cabeçalhos: Content-Type e Content-Length;
- Corpos de recurso-múltiplo, consistindo em um corpo de múltiplas partes, cada
uma contendo uma porção diferente de informação. Este é tipicamente asso-
ciado a formulários HTML.
ANOTAÇÕES

www.grancursosonline.com.br 9
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

Respostas HTTP

• Linha de Stauts

Assim como é ilustrado na imagem abaixo:

O 404 é o not found (não encontrado).

A linha de status é uma identificação baseada em códigos numéricos que possuem


uma relação para entendimento humano:
- A versão do Protocolo (geralmente HTTP/1.1);
- Um código de status (sucesso / falha);
- Um texto de status entendíveis aos humanos.

• Cabeçalho
- O cabeçalho destas respostas é similar ao cabeçalho de Requisição.

Observe, na imagem abaixo, que foi dado como resposta: 200, que significa “ok”, ou seja,
não deu erro:

O 404 significa falha, já o 200 significa resposta satisfatória.


30m
ANOTAÇÕES

www.grancursosonline.com.br 10
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

Protocolo HTTP

• Status Code – é um código do resultado do inteiro de 3 dígitos da tentativa de com-


preender e satisfazer ao pedido.
• Reason Phrase – descrição textual curta do código de status.

Exemplos:
1xx: Informational -Request received, continuing process
2xx: Success -The action was successfully received, understood, and accepted
3xx: Redirection -Further action must be taken in order to complete the request
4xx: Client Error -The request contains bad syntax or cannot be fulfilled
5xx: Server Error -The server failed to fulfill an apparently valid request

“200”: OK

“201”: Created
“202”: Accepted
“203”: Non-Authoritative Information
“204”: No Content
“304”: Not Modified

Obs.: O 304 não é utilizado.

“305”: Use Proxy


“400”: Bad Request
“401”: Unauthorized
“402”: Payment Required
“403”: Forbidden
“404”: Not Found
“500”: Internal Server Error
“501”: Not Implemented
“505”: HTTP Version not supported
Principais Métodos HTTP
ANOTAÇÕES

www.grancursosonline.com.br 11
REDES DE COMPUTADORES
Arquitetura TCP/IP - Camada de Aplicação - Protocolo HTTP
Viu algum erro neste material? Contate-nos em: degravacoes@grancursosonline.com.br

• GET: solicita ao servidor o envio de um recurso; é o serviço essencial para o protocolo.


• HEAD: variante de GET que solicita ao servidor o envio apenas de informações sobre
o recurso.
• PUT: permite que o cliente autorizado armazene ou altere o conteúdo de um recurso
mantido pelo servidor.
• POST: permite que o cliente envie mensagens e conteúdo de formulários para servi-
dores que irão manipular a informação de maneira adequada.
• DELETE: permite que o cliente autorizado remova um recurso mantido pelo servidor.

�Este material foi elaborado pela equipe pedagógica do Gran Cursos Online, de acordo com a aula
preparada e ministrada pelo professor Edward Lima Marialves de Melo.
A presente degravação tem como objetivo auxiliar no acompanhamento e na revisão do conte-
údo ministrado na videoaula. Não recomendamos a substituição do estudo em vídeo pela leitura
exclusiva deste material.
ANOTAÇÕES

www.grancursosonline.com.br 12

Você também pode gostar