SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Hyper Text Transfer Protocol (HTTP)




ADI                                   HTTP 1/18
Protocolo HTTP




      • Funciona na filosofia cliente-servidor sobre o protocolo TCP na porta 80


                Cliente               tcp 80      Servidor Web

         Netscape, iexplorer, opera            ( apache, IIS, etc )




      • Tal como o protocolo SMTP, é um protocolo de texto (ASCII).




ADI                                                                                HTTP 2/18
Sessão HTTP


      • Cliente emite comando HTTP com endereço do documento e versão HTTP como
        argumentos

      • Cliente envia informação adicional, propriedades do browser, etc sobre a forma de
        cabeçalhos

      • Cliente envia linha em branco para terminar o cabeçalho

      • Cliente envia dados (opcional)




ADI                                                                                         HTTP 3/18
Sessão HTTP (2)


Exemplo 1:

        $telnet 66.199.249.146 80
        GET    /index.php   HTTP/1.0
        (linha em branco)
        (linha em branco)

Exemplo 2:

        $telnet 72.14.219.191 80
        GET /cgi-bin/birthday.pl?month=august&date=24 HTTP/1.1
        Host: deei.blogspot.com
        User-Agent: Mozilla 2.1
        Accept: image/gif, image/jpeg, */*
        Cookie: sex=male
        (linha em branco)
        (linha em branco)

ADI                                                         HTTP 4/18
Sessão HTTP (3)



Exemplo 3:

        $telnet 72.14.219.191 80
        POST   /cgi-bin/birthday.pl   HTTP/1.1
        Host: deei.blogspot.com
        User-Agent: Mozilla 2.1
        Accept: image/gif, image/jpeg, */*
        Cookie: sex=male
        Content-length: 52
        (linha em branco)
        month=august&date=24&first_name=John&last_name=Smith




ADI                                                        HTTP 5/18
Sessão HTTP (4)



      • Servidor responde com linha de status

      • Servidor envia um cabeçalho

      • Servidor envia uma linha em branco

      • Servidor envia dados (texto html, binário codificado em base 64 )

Exemplo 3:
        HTTP/1.1 200 OK
        Date: Fri,20 Sep 2003 08:17:57 GMT
        Server: Apache/1.3
        Content-type: text/html
        Content-length: 2482
        Set-Cookie: sex=male
        (linha em branco)
        dados (html, binário em base 64)

ADI                                                                         HTTP 6/18
Sessão HTTP - mensagem multipart

       HTTP/1.1 200 OK
       Date: Fri,20 Sep 2003 08:17:57 GMT
       Server: Apache/1.3
       Content-type: multipart/mixed; boundary=quot;fronteiraquot;
       MIME-version: 1.0
      (linha em branco)
       --fronteira
      Content-type: text/plain
      (linha em branco)
      aqui vai a foto das ferias!
      --fronteira
      Content-type: image/tiff
      Content-transfer-encoding: base64
      (linha em branco)
gajwO4+n2Fy4FV3V7zD9awd7uG8/TITP/vIocxXnnf/5mjgQjcipBUL1b3uyLwAV
tBLOP4nVLdIAhSzlZnyLAF8na0n7g6OSeej7aqIl3NIXCfxDsPsY6NQjSvV77j4h
      --fronteira


ADI                                                       HTTP 7/18
Configuração do servidor Web APACHE


A configuração do servidor web APACHE é realizada num único ficheiro:
    /etc/apache/httpd.conf

Este ficheiro de texto (ASCII) está organizado em directivas globais e contentores com
directivas locais


      directivas globais definem variáveis de ambiente, variáveis de funcionamento do servidor,
      módulos, formato dos logs, hosts virtuais, etc.
      Contentores restringem as directivas a um determinado espaço

      < Directory directório >
      < /Directory >

      < Files ficheiro >
      < /Files >


ADI                                                                                      HTTP 8/18
Directivas globais

ServerName     www.sala160.deei.fct.ualg.pt

DocumentRoot /var/www/

ServerType     standalone

Port      80

Alias     /icons/    /var/www/ions

ScriptAlias    /cgi-bin/ /usr/lib/cgi-bin

UserDir        public_html

AccessFileName    .htaccess

DirectoryIndex    index.html index.htm index.php default.html



ADI                                                         HTTP 9/18
Directivas globais para gestão de processos

      MinSpareServers      5

      MaxSpareServers      20

      StartServers         8

      MaxClients     150

      MaxRequestPerChild        1000

      User           www-data

      Group          www-data




ADI                                           HTTP 10/18
Directivas de performance


      KeepAlive

      KeepAlive Timeout   5

      MaxKeepAlive Requests   1000

      Timeout       300




ADI                                  HTTP 11/18
Directivas de controle de acesso

< Directory     /var/www >

      Options   opções

      AllowOverride       keyword

      Order allow, deny

      Allow from      …

      Deny   from     …

< /Directory >




ADI                                 HTTP 12/18
Directivas de controle de acesso (2)

opções
      All , ExecCGI , FollowSymLinks ,

      Includes (permite ServerSideIncludes SSI)

      IncludesNOEXEC (não permite #exec   #include comandos)

      Indexes

      MultiViews (permite várias linguagens)

      None
      SymLinksIfOwnerMatch




ADI                                                            HTTP 13/18
Directivas de controle de acesso (3)



AllowOverride
(controla se o ficheiro .htaccess no directório em questão deve
ser interpretado)

      None, All, AuthConfig, FileInfo, Indexes, Limit



Order, Allow, Deny

Order      - define a ordem pela qual as regras de controlo são avaliadas. As regras em 2º
lugar são excepções às regras definidas em 1º lugar

Allow from         domínios, nomes, IPs

Deny from          domínios, nomes, IPs


ADI                                                                                  HTTP 14/18
Directivas de autenticação

      <Directory … >
      AuthType Basic
      AuthUserFile .htpassword
      require      valid-user
      </Directory>


Basic – o ficheiro definido em AuthUserFile pode ter a password em texto

AuthUserFile – define o ficheiro que contem a password. Utilizar o programa htpassword
para adicionar a password ao ficheiro.




ADI                                                                             HTTP 15/18
Directivas de configuração de módulos

      • O apache consiste de um número grande (~75) de módulos dinâmicos (carregados quando o
        serviço arranca )

      • Os módulos são identificados com a directiva LoadModule

      • Os módulos de linguagens são interpretadores de código que devolvem HTML

Exemplo:

LoadModule           mod.php4 /usr/lib/apache/modules/mod_php4.so
LoadModule           python_module /usr/lib/apache/1.3/mod_python.so




ADI                                                                                HTTP 16/18
Directivas de configuração de Virtual Hosts (1)

      • A versão 1.1 do protocolo HTTP permite virtual hosts: o mesmo web server serve vários
        domínios

      • NOTA: na configuração do servidor de DNS têm que estar os aliases correspondentes!

      • Exemplo:

server02           IN A   10.11.160.2

www.boys           IN CNAME server02.sala160.deei.fct.ualg.pt.

www.girls IN CNAME server02.sala160.deei.fct.ualg.pt.




ADI                                                                                  HTTP 17/18
Directivas de configuração de Virtual Hosts (2)


      • Os “hosts” virtuais são criados com a directiva <VirtualHost>:

      • Exemplo:

<VirtualHost         www.boys.sala160.deei.fct.ualg.pt>

        ServerName     www.boys.sala160.deei.fct.ualg.pt

        DocumentRoot     /var/www/boys

</VirtualHost>


<VirtualHost         www.girls.sala160.deei.fct.ualg.pt>

        ServerName     www.girls.sala160.deei.fct.ualg.pt

        DocumentRoot     /var/www/girls

</VirtualHost>

ADI                                                                      HTTP 18/18

Más contenido relacionado

La actualidad más candente

Metodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTPMetodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTPLeonel Morgado
 
Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...
Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...
Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...Leonel Morgado
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerTiago Bezerra Dos Santos
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros InteligentesThiago Finardi
 
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoYaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoThiago Paes
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)elliando dias
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory gigadrop
 
Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxThiago Paes
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaCaelum
 
Criando um Website Cacheavel
Criando um Website CacheavelCriando um Website Cacheavel
Criando um Website CacheavelLucas Brasilino
 
O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?Elmano Cavalcanti
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosFernando Mercês
 
pfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadpfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadCavalcante Treinamentos
 

La actualidad más candente (20)

Metodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTPMetodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 2 - Tipos MIME no protocolo HTTP
 
Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...
Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...
Metodologias de Programação IV - Aula 3 - Secção 3 - Os códigos de estado do ...
 
Apache
ApacheApache
Apache
 
Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
Squid
SquidSquid
Squid
 
Implementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu ServerImplementação de Servidor Linux Ubuntu Server
Implementação de Servidor Linux Ubuntu Server
 
Oficina de Squid: Filtros Inteligentes
 Oficina de Squid: Filtros Inteligentes Oficina de Squid: Filtros Inteligentes
Oficina de Squid: Filtros Inteligentes
 
Yaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensãoYaf - Um framework que roda sob uma extensão
Yaf - Um framework que roda sob uma extensão
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory
 
Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vida
 
Criando um Website Cacheavel
Criando um Website CacheavelCriando um Website Cacheavel
Criando um Website Cacheavel
 
Linux shell
Linux shellLinux shell
Linux shell
 
O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?O novo protocolo http 2.0: uma revolução na Internet?
O novo protocolo http 2.0: uma revolução na Internet?
 
Linux - Servidor Web Apache
Linux - Servidor Web ApacheLinux - Servidor Web Apache
Linux - Servidor Web Apache
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 
Linux - DNS
Linux - DNSLinux - DNS
Linux - DNS
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 
pfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadpfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpad
 

Destacado

Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...
Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...
Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...redazione_livinginterior
 
Звітність із загальнообов’язкового державного страхування
Звітність із загальнообов’язкового державного страхуванняЗвітність із загальнообов’язкового державного страхування
Звітність із загальнообов’язкового державного страхуванняЕкатерина Куракова
 
Salary Survey in Construction Sphere in Krasnoyarsk
Salary Survey in Construction Sphere in KrasnoyarskSalary Survey in Construction Sphere in Krasnoyarsk
Salary Survey in Construction Sphere in KrasnoyarskAwara Direct Search
 
Definisi diagnostik
Definisi diagnostikDefinisi diagnostik
Definisi diagnostik宝碹 许
 
mamybloo (imagini care iti taie rasuflarea)
mamybloo (imagini care iti taie rasuflarea)mamybloo (imagini care iti taie rasuflarea)
mamybloo (imagini care iti taie rasuflarea)Biro Bela
 
Artigo tecnologia em favor da educacao
Artigo tecnologia em favor da educacaoArtigo tecnologia em favor da educacao
Artigo tecnologia em favor da educacaoRicardo Gonçalves
 
Semana 1 4 memoria de los peruanos
Semana 1    4 memoria de los peruanosSemana 1    4 memoria de los peruanos
Semana 1 4 memoria de los peruanosMartin Manco
 
비움
비움비움
비움o_eg2
 
Capacitação coleção a b c d
Capacitação coleção a b c dCapacitação coleção a b c d
Capacitação coleção a b c dSilvana Menezes
 
Seminario 10 conquista o independencia del tahuantinsuyo
Seminario 10   conquista o independencia del tahuantinsuyoSeminario 10   conquista o independencia del tahuantinsuyo
Seminario 10 conquista o independencia del tahuantinsuyoMartin Manco
 
Decreto afrocolombianidad.
Decreto afrocolombianidad.Decreto afrocolombianidad.
Decreto afrocolombianidad.Miguel Abeth
 
David
DavidDavid
DavidDavid
 
Presentación3
Presentación3Presentación3
Presentación3nacharet
 
Sessão.am.n.º7 27.06.14
Sessão.am.n.º7 27.06.14Sessão.am.n.º7 27.06.14
Sessão.am.n.º7 27.06.14José Ferreira
 
Valencia 2010 ev i+d telederma
Valencia 2010 ev i+d teledermaValencia 2010 ev i+d telederma
Valencia 2010 ev i+d teledermaFélix de Federico
 
Redes deber n.3
Redes deber n.3Redes deber n.3
Redes deber n.3jordy
 
Website style guides real
Website style guides realWebsite style guides real
Website style guides realCrystalbeth
 

Destacado (20)

De ce costa Social Media si nu este free cum crede toata lumea
De ce costa Social Media si nu este free cum crede toata lumeaDe ce costa Social Media si nu este free cum crede toata lumea
De ce costa Social Media si nu este free cum crede toata lumea
 
Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...
Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...
Intervento Stampa 3D - Carlo De Mattia, architetto, co-fondatore di Design fo...
 
Звітність із загальнообов’язкового державного страхування
Звітність із загальнообов’язкового державного страхуванняЗвітність із загальнообов’язкового державного страхування
Звітність із загальнообов’язкового державного страхування
 
Salary Survey in Construction Sphere in Krasnoyarsk
Salary Survey in Construction Sphere in KrasnoyarskSalary Survey in Construction Sphere in Krasnoyarsk
Salary Survey in Construction Sphere in Krasnoyarsk
 
Definisi diagnostik
Definisi diagnostikDefinisi diagnostik
Definisi diagnostik
 
mamybloo (imagini care iti taie rasuflarea)
mamybloo (imagini care iti taie rasuflarea)mamybloo (imagini care iti taie rasuflarea)
mamybloo (imagini care iti taie rasuflarea)
 
Artigo tecnologia em favor da educacao
Artigo tecnologia em favor da educacaoArtigo tecnologia em favor da educacao
Artigo tecnologia em favor da educacao
 
Semana 1 4 memoria de los peruanos
Semana 1    4 memoria de los peruanosSemana 1    4 memoria de los peruanos
Semana 1 4 memoria de los peruanos
 
비움
비움비움
비움
 
Capacitação coleção a b c d
Capacitação coleção a b c dCapacitação coleção a b c d
Capacitação coleção a b c d
 
My country
My countryMy country
My country
 
Seminario 10 conquista o independencia del tahuantinsuyo
Seminario 10   conquista o independencia del tahuantinsuyoSeminario 10   conquista o independencia del tahuantinsuyo
Seminario 10 conquista o independencia del tahuantinsuyo
 
Decreto afrocolombianidad.
Decreto afrocolombianidad.Decreto afrocolombianidad.
Decreto afrocolombianidad.
 
CtrAtk -B1
CtrAtk -B1CtrAtk -B1
CtrAtk -B1
 
David
DavidDavid
David
 
Presentación3
Presentación3Presentación3
Presentación3
 
Sessão.am.n.º7 27.06.14
Sessão.am.n.º7 27.06.14Sessão.am.n.º7 27.06.14
Sessão.am.n.º7 27.06.14
 
Valencia 2010 ev i+d telederma
Valencia 2010 ev i+d teledermaValencia 2010 ev i+d telederma
Valencia 2010 ev i+d telederma
 
Redes deber n.3
Redes deber n.3Redes deber n.3
Redes deber n.3
 
Website style guides real
Website style guides realWebsite style guides real
Website style guides real
 

Similar a Hyper Text Transfer Protocol (HTTP)

pesquisas na internet
pesquisas na internetpesquisas na internet
pesquisas na interneta20061577
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBelliando dias
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu siteHenrique Lima
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaHenrique Lima
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishLucas Brasilino
 
5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)
5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)
5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)susana12345
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMaurício Linhares
 
Introdução de web
Introdução de webIntrodução de web
Introdução de webSedu
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptxssssssss23
 
Html5 pt - Offline Apps
Html5 pt - Offline AppsHtml5 pt - Offline Apps
Html5 pt - Offline AppsByclosure
 

Similar a Hyper Text Transfer Protocol (HTTP) (20)

pesquisas na internet
pesquisas na internetpesquisas na internet
pesquisas na internet
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEB
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
O get and post para etico hacker
O get and post para etico hackerO get and post para etico hacker
O get and post para etico hacker
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Python CGI
Python CGIPython CGI
Python CGI
 
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
 
Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)
5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)
5. Pesquisa AtravéS Dos Operadores Booleanos (14 04 09)
 
HTTP
HTTPHTTP
HTTP
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação Web
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
Aplicações web parte 1
Aplicações web parte 1Aplicações web parte 1
Aplicações web parte 1
 
Apache htaccess
Apache htaccessApache htaccess
Apache htaccess
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptx
 
Html5 pt - Offline Apps
Html5 pt - Offline AppsHtml5 pt - Offline Apps
Html5 pt - Offline Apps
 

Más de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Más de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Hyper Text Transfer Protocol (HTTP)

  • 1. Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18
  • 2. Protocolo HTTP • Funciona na filosofia cliente-servidor sobre o protocolo TCP na porta 80 Cliente tcp 80 Servidor Web Netscape, iexplorer, opera ( apache, IIS, etc ) • Tal como o protocolo SMTP, é um protocolo de texto (ASCII). ADI HTTP 2/18
  • 3. Sessão HTTP • Cliente emite comando HTTP com endereço do documento e versão HTTP como argumentos • Cliente envia informação adicional, propriedades do browser, etc sobre a forma de cabeçalhos • Cliente envia linha em branco para terminar o cabeçalho • Cliente envia dados (opcional) ADI HTTP 3/18
  • 4. Sessão HTTP (2) Exemplo 1: $telnet 66.199.249.146 80 GET /index.php HTTP/1.0 (linha em branco) (linha em branco) Exemplo 2: $telnet 72.14.219.191 80 GET /cgi-bin/birthday.pl?month=august&date=24 HTTP/1.1 Host: deei.blogspot.com User-Agent: Mozilla 2.1 Accept: image/gif, image/jpeg, */* Cookie: sex=male (linha em branco) (linha em branco) ADI HTTP 4/18
  • 5. Sessão HTTP (3) Exemplo 3: $telnet 72.14.219.191 80 POST /cgi-bin/birthday.pl HTTP/1.1 Host: deei.blogspot.com User-Agent: Mozilla 2.1 Accept: image/gif, image/jpeg, */* Cookie: sex=male Content-length: 52 (linha em branco) month=august&date=24&first_name=John&last_name=Smith ADI HTTP 5/18
  • 6. Sessão HTTP (4) • Servidor responde com linha de status • Servidor envia um cabeçalho • Servidor envia uma linha em branco • Servidor envia dados (texto html, binário codificado em base 64 ) Exemplo 3: HTTP/1.1 200 OK Date: Fri,20 Sep 2003 08:17:57 GMT Server: Apache/1.3 Content-type: text/html Content-length: 2482 Set-Cookie: sex=male (linha em branco) dados (html, binário em base 64) ADI HTTP 6/18
  • 7. Sessão HTTP - mensagem multipart HTTP/1.1 200 OK Date: Fri,20 Sep 2003 08:17:57 GMT Server: Apache/1.3 Content-type: multipart/mixed; boundary=quot;fronteiraquot; MIME-version: 1.0 (linha em branco) --fronteira Content-type: text/plain (linha em branco) aqui vai a foto das ferias! --fronteira Content-type: image/tiff Content-transfer-encoding: base64 (linha em branco) gajwO4+n2Fy4FV3V7zD9awd7uG8/TITP/vIocxXnnf/5mjgQjcipBUL1b3uyLwAV tBLOP4nVLdIAhSzlZnyLAF8na0n7g6OSeej7aqIl3NIXCfxDsPsY6NQjSvV77j4h --fronteira ADI HTTP 7/18
  • 8. Configuração do servidor Web APACHE A configuração do servidor web APACHE é realizada num único ficheiro: /etc/apache/httpd.conf Este ficheiro de texto (ASCII) está organizado em directivas globais e contentores com directivas locais directivas globais definem variáveis de ambiente, variáveis de funcionamento do servidor, módulos, formato dos logs, hosts virtuais, etc. Contentores restringem as directivas a um determinado espaço < Directory directório > < /Directory > < Files ficheiro > < /Files > ADI HTTP 8/18
  • 9. Directivas globais ServerName www.sala160.deei.fct.ualg.pt DocumentRoot /var/www/ ServerType standalone Port 80 Alias /icons/ /var/www/ions ScriptAlias /cgi-bin/ /usr/lib/cgi-bin UserDir public_html AccessFileName .htaccess DirectoryIndex index.html index.htm index.php default.html ADI HTTP 9/18
  • 10. Directivas globais para gestão de processos MinSpareServers 5 MaxSpareServers 20 StartServers 8 MaxClients 150 MaxRequestPerChild 1000 User www-data Group www-data ADI HTTP 10/18
  • 11. Directivas de performance KeepAlive KeepAlive Timeout 5 MaxKeepAlive Requests 1000 Timeout 300 ADI HTTP 11/18
  • 12. Directivas de controle de acesso < Directory /var/www > Options opções AllowOverride keyword Order allow, deny Allow from … Deny from … < /Directory > ADI HTTP 12/18
  • 13. Directivas de controle de acesso (2) opções All , ExecCGI , FollowSymLinks , Includes (permite ServerSideIncludes SSI) IncludesNOEXEC (não permite #exec #include comandos) Indexes MultiViews (permite várias linguagens) None SymLinksIfOwnerMatch ADI HTTP 13/18
  • 14. Directivas de controle de acesso (3) AllowOverride (controla se o ficheiro .htaccess no directório em questão deve ser interpretado) None, All, AuthConfig, FileInfo, Indexes, Limit Order, Allow, Deny Order - define a ordem pela qual as regras de controlo são avaliadas. As regras em 2º lugar são excepções às regras definidas em 1º lugar Allow from domínios, nomes, IPs Deny from domínios, nomes, IPs ADI HTTP 14/18
  • 15. Directivas de autenticação <Directory … > AuthType Basic AuthUserFile .htpassword require valid-user </Directory> Basic – o ficheiro definido em AuthUserFile pode ter a password em texto AuthUserFile – define o ficheiro que contem a password. Utilizar o programa htpassword para adicionar a password ao ficheiro. ADI HTTP 15/18
  • 16. Directivas de configuração de módulos • O apache consiste de um número grande (~75) de módulos dinâmicos (carregados quando o serviço arranca ) • Os módulos são identificados com a directiva LoadModule • Os módulos de linguagens são interpretadores de código que devolvem HTML Exemplo: LoadModule mod.php4 /usr/lib/apache/modules/mod_php4.so LoadModule python_module /usr/lib/apache/1.3/mod_python.so ADI HTTP 16/18
  • 17. Directivas de configuração de Virtual Hosts (1) • A versão 1.1 do protocolo HTTP permite virtual hosts: o mesmo web server serve vários domínios • NOTA: na configuração do servidor de DNS têm que estar os aliases correspondentes! • Exemplo: server02 IN A 10.11.160.2 www.boys IN CNAME server02.sala160.deei.fct.ualg.pt. www.girls IN CNAME server02.sala160.deei.fct.ualg.pt. ADI HTTP 17/18
  • 18. Directivas de configuração de Virtual Hosts (2) • Os “hosts” virtuais são criados com a directiva <VirtualHost>: • Exemplo: <VirtualHost www.boys.sala160.deei.fct.ualg.pt> ServerName www.boys.sala160.deei.fct.ualg.pt DocumentRoot /var/www/boys </VirtualHost> <VirtualHost www.girls.sala160.deei.fct.ualg.pt> ServerName www.girls.sala160.deei.fct.ualg.pt DocumentRoot /var/www/girls </VirtualHost> ADI HTTP 18/18