HTTP的介绍(1):关于URI的介绍

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/javawebty/article/details/80801848

这些天在用VUE开发,用到了VUE的路由,发现用了URL的hash,所以简单的去了解了一下。

URI的格式
由上图里面可以看出一个URI的组成(URL一样)

详解(主要介绍search与hash),以如下的URL为例:

http://www.youcat.top/index;type=c/index.html;type=d?name=a&password=aaa#home?l=1

其中:

location.search == '?name=a&password=aaa';
location.hash == '#home?l=1'

由上当你想要通过URL传入参数的时候,’?‘的内容需要在#前面(当’#‘存在的时候),否则若是在’#‘后面,则其将会成为’#‘号的一部分。
有的参考会说:?后面有多个参数的时候以’&‘进行分隔,其实这边可以你自己定义,只要你在后台或者前段知道分隔符就行。

除了有些不合规则的字符需要特别处理之外,对査询组件的格式没什么要求。按照常规,很多网关都希望査询字符串以一系列“名/值”对的形式出现,名值对之间用字符“&”分隔

index.html后面的;type=d是路径参数,给这个路径使用的,每个路径下都可以使用。

对很多方案来说,只有简单的主机名和到达对象的路径是不够的。除了服务器正在监听的端口,以及是否能够通过用户名和密码访问资源外,很多协议都还需要更多的信息才能工作。负责解析URL的应用程序需要这些协议参数来访问资源。否则,另一端的服务器可能就不会为请求提供服务,或者更糟糕的是,提供错误的服务。比如,像FTP这样的协议,有两种传输模式:二进制和文本形式。肯定不希望以文本形式来传送二进制图片,这样的话,二进制图片可能会变得一团糟,这时候路径参数就有用了

http://www.youcat.top/index;type=c/index.html;type=d?name=a&password=aaa#home?l=1

这个路径的信息并不会全部发送到后端,其中’#‘后面的信息将不会被发送到后端,即后端根本查不到这个东西。

HTTP服务器通常只处理整个对象,而不是对象的片段,客户端不能将片段传送给服务器。浏览器从服务器获得了整个资源之后,会根据片段来显示感兴趣的那部分资源

通过查看vue的路由信息,我们可见:

http://www.youcat.top/index;type=c/index.html#home?l=1

他的形式如上,而起获取参数的方法为:

this.$route.query.l

由此可见,其内部是进行字符串的截取,转换成对象的形式(猜测)

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页