igl*_*vzx 24 apache-http-server http webserver nginx
我在 Web 浏览器中错误输入网页的 URL 时偶然发现了这一点。
为什么访问http://example.com/%会导致抛出 HTTP 400 Bad Request 错误?服务器是否在百分号之后或之前期待其他内容?
这似乎发生在 Apache 和 Nginx 服务器上。
(服务器:cloudflare-nginx)https://superuser.com/%

(服务器:Apache)http://mozilla.org/%

and*_*415 34
根据RFC 3986,裸%字符不是有效的URI语法;它后面应该跟两个有意义的十六进制数字。
你得到的HTTP状态码属于这个4xx类:
4xx: Client Error - The request contains bad syntax or cannot be fulfilled
特别是,互联网工程任务组(IETF) 在RFC 2616 中400定义了代码:
10.4.1 400 错误请求
由于语法格式错误,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。
引用维基百科(粗体强调我的):
URI 中允许的字符是保留的或未保留的(或作为百分比编码的一部分的百分比字符)。
如果要插入文字%符号,则需要使用其百分比编码表示:%25。
百分号用于插入 url 中通常不支持的字符。例如 %20 与空格相同。
| 归档时间: |
|
| 查看次数: |
20442 次 |
| 最近记录: |