url的组成

简介: url的组成

a3b4bc5aa2034d33be10c8a13435c246.png


整个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中间件代理跨域

相关文章
|
Android开发 Java Maven
Android--增量更新
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/79718196 一、介绍                 当我们发布新版本的时候,一些用户升级并不是很积极,这就造成了新版本的升级率并不高。
1851 0
扩展ASCII编码(Extended ASCII或8-bit ASCII)
扩展ASCII编码(Extended ASCII或8-bit ASCII)
3175 5
|
JSON 自然语言处理 编译器
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
前言包大小是衡量APP性能的一项重要指标,它直接影响用户的下载点击率(包太大不想下)、下载安装成功率(下载慢不用了)、APP卸载率(太占空间先删掉)。包大小的计算逻辑很简单,它是各种类型的文件占用磁盘大小相加。APP瘦身的技术却很复杂,代码文件的复杂度和编译器策略决定了可执行文件的大小,业务功能和工程架构决定了代码文件的复杂度。iOS APP瘦身,需要掌握的技能有XCode构建技术、LLVM编译器
4720 0
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
【Node】Mac多版本Node切换
【Node】Mac多版本Node切换
1396 1
|
关系型数据库 MySQL
Mysql 查询以某个字符开头的语句和LIKE的使用
Mysql 查询以某个字符开头的语句和LIKE的使用
334 0
|
JavaScript 安全
TypeScript中any unkown never的区别
TypeScript中any unkown never的区别
|
存储 Cloud Native Linux
音视频 ffmpeg命令图片与视频互转
音视频 ffmpeg命令图片与视频互转
|
Java 数据处理 Spring
Spring Boot中的模板引擎选择与配置
Spring Boot中的模板引擎选择与配置
1329 0
|
消息中间件 Java RocketMQ
RocketMQ搭建并测试(windows)
RocketMQ搭建并测试(windows)
2130 0