zoukankan      html  css  js  c++  java
  • 【跨源请求】概念浅析

    什么是URL

    [scheme]://[host]:[port]/[path]?#hash
    

    例如我现在有一个网址:https://i.cnblogs.com:1234/posts/edit

    • scheme: https
    • host: i.cnblogs.com
    • port: 1234
    • path: posts/edit

    同源的概念

    如果两个 URL 的 “scheme://host:port” 内容一样,就叫同源。

    跨源的概念

    如果两个 URL 的 scheme、host、port 有任何一个不一样,就不同源。这时候,一个 URL 的脚本从另一个 URL 获取数据,就叫跨源访问。

    CORS(Cross-Origin Resource Sharing)

    W3C提出的方案,只有现代浏览器支持

    CORS 的工作方式:

      1)浏览器中当前页面的脚本请求另外一个服务器的数据时,浏览器在发起连接的数据报头中附加一个 Origin 报头,

        表明当前页面的来源,然后向另外一个服务器发起连接

      2)目标服务器接收到浏览器的连接请求后,如果接受请求,则在响应数据流的报头中添加一个

        Access-Control-Allow-Origin 报头,并给这个报头赋一个值,值为浏览器发过来的 Origin 报头值,

        或者为 “*”(表示此服务器运行任何跨站请求)。如果不接受请求,则不包含 Access-Control-Allow-Origin 报头。

      3) 浏览器接受到返回来的数据包进行解析,如果不包含 Access-Control-Allow-Origin 报头,则丢弃响应数据包。

    关于 CORS 的论述,有一个老外大牛(Nicholas C. Zakas)的博客
    Cross-domain Ajax with Cross-Origin Resource Sharing

  • 相关阅读:
    Hadoop无法访问web50070端口
    Hadoop问题汇总
    Hadoop问题汇总
    Linux网络连接模式以及修改静态IP
    Linux网络连接模式以及修改静态IP
    Linux基本命令
    SQLite数据操作
    SQLite初试
    编码与解码
    属性列表
  • 原文地址:https://www.cnblogs.com/gaoshaonian/p/14479106.html
Copyright © 2011-2022 走看看