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

相关文章
|
2月前
|
中间件
|
1月前
|
安全 Java 程序员
【HTTP】认识 URL 和 URL encode
【HTTP】认识 URL 和 URL encode
35 0
|
3月前
URL和URI
URL和URI
60 0
|
安全 数据安全/隐私保护
什么是URL?
什么是URL?
130 0
URL后面#号的问题
前几天测试在对于我写的接口进行测试的时候遇到了这样一个问题
|
域名解析 网络协议 Windows
浅析URL
浅析URL
170 0
浅析URL
|
网络协议 网络架构 开发者
浅析 URL
浅析 URL
134 0
URL 解析
URL 解析
238 0
|
网络协议
URL
HTTP协议是一个超文本传输协议 HTTP协议是一个基于TCP传输协议传输数据的 HTTP协议规定了浏览器和 Web 服务器通信数据的格式
348 0