Cross-origin resource sharing

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Translation Latin Alphabet.svg
Este artigo ou secção está a ser traduzido. Ajude e colabore com a tradução.

Cross-origin resource sharing (CORS)(ou compartilhamento de recursos cross-origem) é uma especificação de uma tecnologia de navegadores que define meios para um servidor permitir que seus recursos sejam acessados por uma página web de um domínio diferente.[1] Esse tipo de acesso seria de outra forma negado pela same origin policy. CORS define um meio pelo qual um navegador e um servidor web podem interagir para determinar se deve ou não requisições cross-origem[2] . É um acordo que permite grande flexibilidade, mas é mais seguro que permitir todos as requisições desse tipo.

Implementação[editar | editar código-fonte]

Implementar o CORS em um servidor é simples como enviar cabeçalhos HTTP adicionais, por exemplo:

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: http://example.com:8080 http://foo.example.com

Suporte nos navegadores[editar | editar código-fonte]

O CORS é suportado por todos os navegadores baseados nas seguintes engines:

  • Gecko 1.9.1 (Firefox 3.5,[3] SeaMonkey 2.0[4] ) e acima.
  • WebKit (Incerto sobre as versão inicial, Safari 4 e superiores,[1] o Google Chrome 3 e superiores, possivelmente anteriores[5] )
  • MSHTML/Trident 4.0 (Internet Explorer 8) provê suporte parcial via objeto XDomainRequest.[1]

História[editar | editar código-fonte]

O suporte a Cross-orign foi originalmente proposto por Matt Oshry, Brad Porter, and Michael Bodell da Tellme Networks em março de 2004 para a inclusão no VoiceXML2.1[6] para permitir requisições de dados cross-orign de forma segura por navegadores VoiceXML. O mecanismo foi considerado como sendo geral em natureza e não especifico ao VoiceXML e foi posteriormente separado em uma Nota de Implementação.[7] O WebApps Working Group da W3C com a participação dos principais fabricantes de navegadores começaram a formalizar a Nota em um W3C Working Draft no caminho de um status formal de uma Recomendação W3C.

Relacionamento de CORS com JSONP[editar | editar código-fonte]

CORS pode ser usada com uma alternativa moderna ao padrão JSONP. Enquanto JSONP suporta somente requisições usando o método GET, CORS também suporta outros tipos de requisições HTTP. Com CORS é possível usar XMLHttpRequest comuns, que suportam melhor o tratamento de erro que JSONP. Por outro lado, JSONP funciona com navegadores legados sem suporte a CORS. CORS é suportado pela maioria dos navegadores modernos.[8] [9]

References[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]