Open Arnie97 opened 2 years ago
Unreserved
Path (pchar
)
Query / fragment
critical for current usage cases
post request parameter get request path delete request path post response URL
!
: must not escape this character
%
: must be percent encoded
*
: either way above could work well
+
: must be replaced with +
?
: can not work in any known ways
Escaped | Raw | U | P | Q | c | p | g | d | r |
---|---|---|---|---|---|---|---|---|---|
%20 |
|
c | %+ | * | % | % | |||
%21 |
! |
* | * | * | ! | ||||
%22 |
" |
* | * | * | % | ||||
%23 |
# |
c | % | % | % | % | |||
%24 |
$ |
* | * | * | ! | ||||
%25 |
% |
c | % | % | % | % | |||
%26 |
& |
% | * | * | ! | ||||
%27 |
' |
* | * | * | ! | ||||
%28 |
( |
* | * | * | ! | ||||
%29 |
) |
* | * | * | ! | ||||
%2A |
* |
* | * | * | ! | ||||
%2B |
+ |
c | % | * | * | ! | |||
%2C |
, |
* | * | * | ! | ||||
%2D |
- |
U | P | Q | c | * | * | * | ! |
%2E |
. |
U | P | Q | c | * | ? | ? | ! |
%2F |
/ |
Q | c | * | ! | ! | ! | ||
%3A |
: |
P | Q | c | * | * | * | ! | |
%3B |
; |
* | % | % | ! | ||||
%3C |
< |
* | * | * | % | ||||
%3D |
= |
* | * | * | ! | ||||
%3E |
> |
* | * | * | % | ||||
%3F |
? |
% | % | % | % | ||||
%40 |
@ |
P | Q | c | * | * | * | ! | |
%5B |
[ |
* | * | * | % | ||||
%5C |
\ |
* | ? | ? | % | ||||
%5D |
] |
* | * | * | % | ||||
%5E |
^ |
* | * | * | % | ||||
%5F |
_ |
U | P | Q | c | * | * | * | ! |
%60 |
` |
* | * | * | % | ||||
%7B |
{ |
* | * | * | % | ||||
%7C |
\| |
* | * | * | % | ||||
%7D |
} |
* | * | * | % | ||||
%7E |
~ |
U | P | Q | c | * | * | * | ! |
GET /api/protocol/{orgID}/GENERIC/flow_generic_repo/files/{path}/%2E
HTTP/2 400
{"errorCode":"-1","successful":false}
DELETE /api/protocol/{orgID}/GENERIC/flow_generic_repo/files/{path}/%2E
HTTP/2 500
{"object":{"timestamp":{now},"status":500,"error":"Internal Server Error","exception":"java.lang.IllegalStateException","message":"Pattern \"/.*\" is not a match for \".\"","path":"/api/protocol/{orgID}/GENERIC/flow_generic_repo/files/{path}/%2E"},"successful":true}
GET /api/protocol/{orgID}/GENERIC/flow_generic_repo/files/if-\-or-%5C-was-in-the-url-then-boom
HTTP/2 400
content-length: 0
Arch 32 和 7-Zip-ZStd 验证过程中发现,不转义不行,全转义也不行(至少不能转义
/
为%2F
,其他符号待考察)。例如:
目前转义成
导致完全读不到