首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >URL允许包含空格吗?

URL允许包含空格吗?
EN

Stack Overflow用户
提问于 2018-04-02 09:12:44
回答 2查看 0关注 0票数 0

URI(特别是HTTP URL)是否允许包含一个或多个空格字符?

EN

回答 2

Stack Overflow用户

发布于 2018-04-02 17:20:01

根据RFC 1738

不安全: 字符可能由于多种原因而不安全。 空格字符是不安全的,因为重要的空格可能消失,并且当URL被转录或排版或受到文字处理程序的处理时可能引入不重要的空格。 字符"<"">",因为它们被用作在周围自由文本网址的分隔符是不安全的; 引号(""")用于在某些系统中分隔URL。该字符"#"不安全,应始终进行编码,因为它在万维网和其他系统中用于从可能遵循它的片段/锚点标识符中分隔URL。人物"%"是不安全的,因为它用于其他字符的编码。其他字符是不安全的,因为网关和其他传输代理有时会修改这些字符。这些字符是"{""}""|""\""^""~""[""]",和"`"所有不安全的字符必须始终在URL中进行编码。例如,"#"即使在通常不处理片段或锚点标识符的系统中,字符也必须在URL中进行编码,以便如果URL被复制到使用它们的另一个系统中,则不需要更改URL编码。

票数 0
EN

Stack Overflow用户

发布于 2018-04-02 18:20:46

为什么它必须被编码?请求看起来像这样:

代码语言:javascript
运行
复制
GET /url HTTP/1.1
(Ignoring headers)

有3个由空格分隔的字段。如果在网址中放置空格:

代码语言:javascript
运行
复制
GET /url end_url HTTP/1.1

有4个字段,HTTP服务器会告诉你这是一个无效的请求。

代码语言:javascript
运行
复制
GET /url%20end_url HTTP/1.1

3个字段=>有效

注意:在查询字符串(在?之后),空格通常编码为+

代码语言:javascript
运行
复制
GET /url?var=foo+bar HTTP/1.1 

而不是

代码语言:javascript
运行
复制
GET /url?var=foo%20bar HTTP/1.1 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档