SlideShare uma empresa Scribd logo
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.

Mais conteúdo relacionado

Mais procurados

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
Gabriel Rodrigues Couto
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
Stefan Horochovec
 
O poder das Progressive Web Apps
O poder das Progressive Web AppsO poder das Progressive Web Apps
O poder das Progressive Web Apps
Pedro Edson Silva Barros
 
Introdução ao WCM System
Introdução ao WCM SystemIntrodução ao WCM System
Introdução ao WCM System
Wander 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.0
Wilson Mendes
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
Leonardo Melo Moreira
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
Alvaro Viebrantz
 
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
Fabrí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 VIDA
Wilson 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 nuvem
Cloves 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áticas
Rover Marinho
 
Ria
RiaRia
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
Alessandro Oliveira
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
Raphael Ramos Monteiro
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
Stefan Horochovec
 

Mais procurados (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"
 

Semelhante a 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-proxyreversowebapplicationproxywindowsserver2012r2
Uilson 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 2015
Reinaldo Ferraz
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Sérgio Souza Costa
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 
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
Ricardo Guerra Freitas
 
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
Rodrigo 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 Brasil
Renato 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.pptx
MarceloRosenbrock1
 
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
Rodrigo 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 3
Rodrigo 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
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
Handerson Frota
 
Web Services
Web ServicesWeb Services
Web Services
Edson Yanaga
 
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
Renato Groff
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
Rodrigo Cândido da Silva
 
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
Daniel Donda - MVP
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
Vivaldo 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
 

Semelhante a 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...
 

Mais de 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
 

Mais de 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]
 

Último

Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
EliakimArajo2
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
Rafael Santos
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
anpproferick
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Annelise Gripp
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
Ian Oliveira
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
anpproferick
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
tnrlucas
 

Último (7)

Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
 

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.