SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

MVP ShowCast 2013
Aplicações e serviços Web interoperáveis com o
padrão Cross-Origin Resource Sharing (CORS)
Rogério Moraes de Carvalho
Visual C#
Diretor de Tecnologia – VITA Informática
@rogeriomc
rogeriomc.wordpress.com
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

Agenda
♦User-Agent
♦Web Origin
♦Same-Origin Policy
♦JSON-P
♦Cross-Origin Resource Sharing
♦Cross-Domain AJAX com CORS
♦Demonstração: Cross-Domain AJAX com CORS
♦Documentação
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: INTEROPERABILIDADE
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

User-Agent
♦O que é um agente de usuário (user agent)?
♦ É um software que age em nome de um usuário
♦ Exemplos
♦ Browser (Chrome, Internet Explorer, Firefox, Safari, Opera, etc.)
♦ Cliente de e-mail (Outlook, Windows Mail, Mac OS X Mail, Thunderbird, etc.)

♦Cenário comum
♦ Agente de usuário como cliente num protocolo de rede usado em
comunicações cliente/servidor
♦ Exemplo
♦ O protocolo HTTP identifica o software cliente que origina uma requisição usando o
cabeçalho User-Agent
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Web Origin
♦O que são Web Origins?
♦ Forma de agentes de usuário agruparem URIs juntas em domínios protegidos

♦Regra para dois URIs serem classificadas na mesma origem web
♦ Devem ter os mesmos: esquemas, hospedeiros e portas

♦Caracterização de uma Web Origin
♦ Trio (esquema, hospedeiro, porta): esquema://hospedeiro[:porta]
♦ Esquema do URI
♦ Hospedeiro do URI
♦ Porta do URI (se omitida, então assume-se a porta padrão do protocolo do esquema)

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Same-Origin Policy
♦O que é a Same-Origin Policy (política de mesma origem)?
♦ Documentos recuperados de origens distintas são isolados uns dos outros
♦ Em domínios protegidos uns dos outros

♦ Exemplo
♦ Um documento em http://mvpshowcast.azurewebsites.net/Evento não pode acessar o
DOM de um documento em https://mvpshowcast.azurewebsites.net/MVP
♦ Origem do documento http://mvpshowcast.azurewebsites.net/Evento
♦ Esquema: http; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 80
♦ Origem do documento https://mvpshowcast.azurewebsites.net/MVP
♦ Esquema: https; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 443

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Cross-domain AJAX
♦O que é AJAX?
♦ Um acrônimo para Asynchronous JavaScript and XML
♦ Grupo de técnicas relacionadas de desenvolvimento web usadas do lado do
cliente para criar aplicações web assíncronas
♦ O objeto XMLHttpRequest é usado para trafegar os dados entre cliente e servidor
♦ Independente do nome, XML não é obrigatório
♦ JSON é usado com frequência
♦ Existe o termo AJAJ (Asynchronous JavaScript and JSON), mas é pouco usado

♦O que é cross-domain AJAX?
♦ A ideia de realizar requisições entre diferentes domínios em oposição à
restrição Same-Origin Policy
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

JSON-P
♦O que é JSON-P?
♦ Significa JSON with padding
♦ Mecanismo para requisições de conteúdo cross-domain com o tag <script>
function processarDados(dadosJSON) {
// O argumento dadosJSON deve ser uma representação JSON dos dados.
...
}
<script type="text/javascript"
src="http://dominiocruzado.com.br/servicoweb?jsonp=processarDados">
</script>
processarDados({ webcast: "CORS", trilha: "Interoperabilidade", sessao: "IT" });
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Cross-Origin Resource Sharing (CORS)
♦O que é Cross-Origin Resource Sharing (CORS)?
♦ Mecanismo que habilita requisições do lado do cliente de origens cruzadas

♦Especificação no W3C
♦ Cross-Origin Resource Sharing
♦ W3C Candidate Recommendation 29 January 2013
♦ http://www.w3.org/TR/cors/
♦ Produzido em conjunto por dois grupos de trabalho no W3C
♦ Web Applications (WebApps) e Web Application Security (WebAppSec)

♦Benefícios da padronização
♦ APIs que fazem requisições de origens cruzadas podem usar os algoritmos
definidos na especificação
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Cross-Domain AJAX com CORS
♦O que é XMLHttpRequest?
♦ É uma API que fornece funcionalidades do lado do cliente para transmissão
de dados entre um cliente e um servidor

♦Especificação XMLHttpRequest no W3C
♦ W3C Working Draft 6 December 2012
♦ http://www.w3.org/TR/XMLHttpRequest/

♦A nova especificação XMLHttpRequest introduz novos recursos
♦ Requisições de origens cruzadas
♦ Eventos de progresso de upload
♦ Suporte para upload e download de dados binários
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: INFRAESTRUTURA

Demonstração
Cross-Domain AJAX com CORS
♦Criação de uma solução no Visual Studio 2013
♦ Projeto de uma API web
♦ MvpShowCast.WebApi

♦ Projeto de uma aplicação web
♦ MvpShowCast.WebSite

♦Publicação da solução no Windows Azure
♦ API web: mvpshowcastwebapi.azurewebsites.net
♦ Aplicação web: mvpshowcastwebsite.azurewebsites.net
♦ Aplicação web 2: mvpshowcastwebsite2.azurewebsites.net

♦Habilitação de CORS na API web
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: INTEROPERABILIDADE
SESSÃO: INFRAESTRUTURA

Documentação
♦HTTP/1.1 User-Agent
♦ http://tools.ietf.org/html/rfc2616#section-14.43

♦The Web Origin Concept
♦ http://tools.ietf.org/html/rfc6454

♦Same-Origin Policy
♦ http://www.w3.org/Security/wiki/Same_Origin_Policy

♦Cross-Origin Resource Sharing
♦ W3C Candidate Recommendation 29 January 2013
♦ http://www.w3.org/TR/cors/
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

TRILHA: INTEROPERABILIDADE
SESSÃO: INFRAESTRUTURA

TRILHA: INTEROPERABILIDADE

Perguntas & Respostas

Rogério Moraes de Carvalho
Visual C#
Diretor de Tecnologia – VITA Informática
@rogeriomc
rogeriomc.wordpress.com

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

Weitere ähnliche Inhalte

Was ist angesagt?

Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Gabriel Rodrigues Couto
 
Introdução ao WCM System
Introdução ao WCM SystemIntrodução ao WCM System
Introdução ao WCM SystemWander Costa
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0Wilson Mendes
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftFabrício Lopes Sanchez
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAWilson Mendes
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemCloves Moreira Junior
 
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasMVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasRover Marinho
 
REST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasREST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasAlessandro Oliveira
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 

Was ist angesagt? (17)

Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019Micro Front-end + CQRS/ES - JSSP jul/2019
Micro Front-end + CQRS/ES - JSSP jul/2019
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 
O poder das Progressive Web Apps
O poder das Progressive Web AppsO poder das Progressive Web Apps
O poder das Progressive Web Apps
 
Introdução ao WCM System
Introdução ao WCM SystemIntrodução ao WCM System
Introdução ao WCM System
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias Microsoft
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvem
 
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores PráticasMVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
MVP ShowCast IT - Mensageria - Exchange 2013 Virtualização e Melhores Práticas
 
Ria
RiaRia
Ria
 
REST: Padrões e Melhores Práticas
REST: Padrões e Melhores PráticasREST: Padrões e Melhores Práticas
REST: Padrões e Melhores Práticas
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Web Dev Camp
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 

Ähnlich wie Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) [MVP ShowCast 2013 - IT - Interoperabilidade]

Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2Uilson Souza
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015Reinaldo Ferraz
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilRenato Groff
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...Renato Groff
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
 APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ... APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...Renato Groff
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Renato Groff
 
Forneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackForneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackDaniel Donda - MVP
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieVivaldo Jose Breternitz
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Renato Groff
 

Ähnlich wie Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) [MVP ShowCast 2013 - IT - Interoperabilidade] (20)

Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
Mvp show cast2014-it-security-proxyreversowebapplicationproxywindowsserver2012r2
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015HTML5, Mobile Web e além - Computer on the beach 2015
HTML5, Mobile Web e além - Computer on the beach 2015
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Computação em nuvem e Windows Azure
Computação em nuvem e Windows AzureComputação em nuvem e Windows Azure
Computação em nuvem e Windows Azure
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure T...
 
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
 APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ... APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
APIs na nuvem: implementando soluções RESTful com o Microsoft Azure - Azure ...
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Web Services
Web ServicesWeb Services
Web Services
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
Forneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackForneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure Pack
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
 

Mehr von MVP ShowCast

AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...
AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...
AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...MVP ShowCast
 
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...MVP ShowCast
 
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...MVP ShowCast
 
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...MVP ShowCast
 
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...MVP ShowCast
 
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...MVP ShowCast
 
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...MVP ShowCast
 
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...MVP ShowCast
 
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]MVP ShowCast
 

Mehr von MVP ShowCast (9)

AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...
AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...
AlwaysOn Failover Cluster e Availability Group em um Cenário de Disaster Reco...
 
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
C++11 e C++14 no Visual Studio 2013 [MVP ShowCast 2013 - DEV - Ferramentas de...
 
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
O que há de Interop no Windows Server 2012 R2 [MVP ShowCast 2013 - IT - Inter...
 
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
Gestão de Projetos e Processos - Muito além do trivial [MVP ShowCast 2013 - D...
 
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
Desvendando o Windows Azure Media Services - O que é possível fazer? [MVP Sho...
 
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
Dicas de publicação de aplicativos Windows 8 na Windows Store [MVP ShowCast 2...
 
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
Windows 8.1: O que mudou para o desenvolvedor? [MVP ShowCast 2013 - DEV - Win...
 
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
Desenvolvimento de jogos para a Windows Store [MVP ShowCast 2013 - DEV - Wind...
 
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
Como foi feito o Caça-Palavras [MVP ShowCast 2013 - DEV - Windows Phone]
 

Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) [MVP ShowCast 2013 - IT - Interoperabilidade]

  • 1. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE MVP ShowCast 2013 Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource Sharing (CORS) Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 2. SESSÃO: INFRAESTRUTURA Agenda ♦User-Agent ♦Web Origin ♦Same-Origin Policy ♦JSON-P ♦Cross-Origin Resource Sharing ♦Cross-Domain AJAX com CORS ♦Demonstração: Cross-Domain AJAX com CORS ♦Documentação © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: INTEROPERABILIDADE
  • 3. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE User-Agent ♦O que é um agente de usuário (user agent)? ♦ É um software que age em nome de um usuário ♦ Exemplos ♦ Browser (Chrome, Internet Explorer, Firefox, Safari, Opera, etc.) ♦ Cliente de e-mail (Outlook, Windows Mail, Mac OS X Mail, Thunderbird, etc.) ♦Cenário comum ♦ Agente de usuário como cliente num protocolo de rede usado em comunicações cliente/servidor ♦ Exemplo ♦ O protocolo HTTP identifica o software cliente que origina uma requisição usando o cabeçalho User-Agent © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 4. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Web Origin ♦O que são Web Origins? ♦ Forma de agentes de usuário agruparem URIs juntas em domínios protegidos ♦Regra para dois URIs serem classificadas na mesma origem web ♦ Devem ter os mesmos: esquemas, hospedeiros e portas ♦Caracterização de uma Web Origin ♦ Trio (esquema, hospedeiro, porta): esquema://hospedeiro[:porta] ♦ Esquema do URI ♦ Hospedeiro do URI ♦ Porta do URI (se omitida, então assume-se a porta padrão do protocolo do esquema) © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 5. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Same-Origin Policy ♦O que é a Same-Origin Policy (política de mesma origem)? ♦ Documentos recuperados de origens distintas são isolados uns dos outros ♦ Em domínios protegidos uns dos outros ♦ Exemplo ♦ Um documento em http://mvpshowcast.azurewebsites.net/Evento não pode acessar o DOM de um documento em https://mvpshowcast.azurewebsites.net/MVP ♦ Origem do documento http://mvpshowcast.azurewebsites.net/Evento ♦ Esquema: http; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 80 ♦ Origem do documento https://mvpshowcast.azurewebsites.net/MVP ♦ Esquema: https; Hospedeiro: mvpshowcast.azurewebsites.net; Porta: 443 © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 6. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Cross-domain AJAX ♦O que é AJAX? ♦ Um acrônimo para Asynchronous JavaScript and XML ♦ Grupo de técnicas relacionadas de desenvolvimento web usadas do lado do cliente para criar aplicações web assíncronas ♦ O objeto XMLHttpRequest é usado para trafegar os dados entre cliente e servidor ♦ Independente do nome, XML não é obrigatório ♦ JSON é usado com frequência ♦ Existe o termo AJAJ (Asynchronous JavaScript and JSON), mas é pouco usado ♦O que é cross-domain AJAX? ♦ A ideia de realizar requisições entre diferentes domínios em oposição à restrição Same-Origin Policy © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 7. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE JSON-P ♦O que é JSON-P? ♦ Significa JSON with padding ♦ Mecanismo para requisições de conteúdo cross-domain com o tag <script> function processarDados(dadosJSON) { // O argumento dadosJSON deve ser uma representação JSON dos dados. ... } <script type="text/javascript" src="http://dominiocruzado.com.br/servicoweb?jsonp=processarDados"> </script> processarDados({ webcast: "CORS", trilha: "Interoperabilidade", sessao: "IT" }); © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 8. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Cross-Origin Resource Sharing (CORS) ♦O que é Cross-Origin Resource Sharing (CORS)? ♦ Mecanismo que habilita requisições do lado do cliente de origens cruzadas ♦Especificação no W3C ♦ Cross-Origin Resource Sharing ♦ W3C Candidate Recommendation 29 January 2013 ♦ http://www.w3.org/TR/cors/ ♦ Produzido em conjunto por dois grupos de trabalho no W3C ♦ Web Applications (WebApps) e Web Application Security (WebAppSec) ♦Benefícios da padronização ♦ APIs que fazem requisições de origens cruzadas podem usar os algoritmos definidos na especificação © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 9. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Cross-Domain AJAX com CORS ♦O que é XMLHttpRequest? ♦ É uma API que fornece funcionalidades do lado do cliente para transmissão de dados entre um cliente e um servidor ♦Especificação XMLHttpRequest no W3C ♦ W3C Working Draft 6 December 2012 ♦ http://www.w3.org/TR/XMLHttpRequest/ ♦A nova especificação XMLHttpRequest introduz novos recursos ♦ Requisições de origens cruzadas ♦ Eventos de progresso de upload ♦ Suporte para upload e download de dados binários © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 10. SESSÃO: INFRAESTRUTURA Demonstração Cross-Domain AJAX com CORS ♦Criação de uma solução no Visual Studio 2013 ♦ Projeto de uma API web ♦ MvpShowCast.WebApi ♦ Projeto de uma aplicação web ♦ MvpShowCast.WebSite ♦Publicação da solução no Windows Azure ♦ API web: mvpshowcastwebapi.azurewebsites.net ♦ Aplicação web: mvpshowcastwebsite.azurewebsites.net ♦ Aplicação web 2: mvpshowcastwebsite2.azurewebsites.net ♦Habilitação de CORS na API web © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: INTEROPERABILIDADE
  • 11. SESSÃO: INFRAESTRUTURA Documentação ♦HTTP/1.1 User-Agent ♦ http://tools.ietf.org/html/rfc2616#section-14.43 ♦The Web Origin Concept ♦ http://tools.ietf.org/html/rfc6454 ♦Same-Origin Policy ♦ http://www.w3.org/Security/wiki/Same_Origin_Policy ♦Cross-Origin Resource Sharing ♦ W3C Candidate Recommendation 29 January 2013 ♦ http://www.w3.org/TR/cors/ © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. TRILHA: INTEROPERABILIDADE
  • 12. SESSÃO: INFRAESTRUTURA TRILHA: INTEROPERABILIDADE Perguntas & Respostas Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.