url的组成

整个url分为

        1. protocol协议 协议例如像 https  或 http

        2.  auth 授权  auth就是用户名 密码 username password  一般在请求的时候服务器如果发现你配置了 auth 就回去找你的 request里面有没有"Authorization" 如果没有则返回401 然后让你登录 当你登录成功后 再次发送请求 然后这个时候就有了“Authorization” 然后服务器确认正确 返回页面

        3. host主机 主机分为 hostname 主机名 和 port端口号 

        4. path 路径 path分为 pathname路径名称 然后还有 search 参数 有params/:id=xxx传参和query?id=xxx 传参

        5. hash 哈希 最后就是 hash 

        ①:HTTP请求不包括"#":

                #后面是hash值‘       #’是用来指导浏览器动作的,对服务器端完全无用。所以,http请求中不包括#

        ②:#后面的字符:

                在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送发到服务器端

        ③:改变#不会重新刷新页面:

                单单改变#后面的部分,浏览器只会滚动到相应位置,不会重新加载页面

        ④:改变#会改变浏览器的历史访问:

                每次#后面的值发生变化也会添加到历史记录中 当点击回退键可以回退到修改前

        ⑤:window.location.hash读取#值:

                window.location.hash这个属性可读可写。读取时,可以用来判断网页状态是否改变;写入时,则会在不重载网页的前提下,创造一条访问历史记录。

        ⑥:onhashchange事件:

                当hash值发生变化触发的事件

      origin 源头 分为 三个  分别是

         1. protocol 协议

         2 . hostname 域名 (主机名)

         3. port端口号 

        他们三个 协议· 域名 · 端口 组成同源策略 

        同源策略是一种约定:由 Netscape 公司 1995 年引入浏览器,它是浏览器最核心也最基本的安全功能,现在所有支持 JavaScript 的浏览器都会使用这个策略。如果缺少了同源策略,浏览器很容易受到 XSS、 CSFR 等攻击。

       当协议 域名 端口 中任何一个不同 就违背了同源策略 这个时候 就不能进行DOM获取 ,不能ajax请求数据,不能进行本地存储等操作

        为什么要跨域?

        为了在不同源的情况下进行DOM元素获取 ajax请求数据等 。。。

        跨域解决方案     :

        跨域还分为前端跨域和后端跨域

                前端跨域解决 像 :

                        proxy代理

                        nginx反向代理

                                

                 后端的:

                        cors跨域

                        nodejs中间件代理跨域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值