关于HTTP请求中的#号

来源:互联网 发布:莫知我哀 编辑:程序博客网 时间:2024/06/06 09:41

昨天收到一个需求,新增一个页面,前端已经把页面做好了,而且页面的请求连接也给定了,那么就是万事俱备只欠东风了。

所以页面拷贝进来,改一改,然后controller加一个方法,当我去拷贝请求连接地址的时候,我愣住了,
需求方给的地址里面竟然是这样的”www.xxxx.cn/#xxx”,看到这个#我顿时脑袋宕机了,尼玛http请求里怎么能拿‘#’当地址的一部分呢…一群草泥马在心中呼啸而过…

那么为什么‘#’不能作为http请求的一部分呢,http请求中的#号又意味着什么呢?

① 首先我们来了解一下#的含义

‘#’代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,http://www.example.com/index.html#print就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。为网页位置指定标识符,有两个方法。
一是使用锚点,比如

<a name="print"></a>

二是使用id属性,比如

<div id="print">

那锚点的概念,但凡事学过html的应该都能够理解,这里就不详细科普了。

② 所以综合上面讲到的问题我们得到一个结论

‘#’是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。

讲到这里这个大家基本就了解了吧,在http请求中#号不能随便乱用啊!

如果真的要做这样的事情,那么思路应该是先获取http的完整请求,然后在通过代码处理找到要执行的方法,但这个具体我也没有尝试过,所以不做过多阐述,
如果有知道的朋友可以留下你的经验,以供分享。

2 0
原创粉丝点击