Feature Description
Percent-encoding functionality is used whenever URL redirection happens for an HTTP Request packet and the requested URL (original URL) is embedded in redirected response. The reserved characters present in the requested URL are replaced by % followed by ASCII hexadecimal value. As defined in RFC 3986, a capability is added in the ECS to percent-encode reserved characters when modifying HTTP URLs. The percent (%) character is also percent-encoded as “%25” as this serves as the indicator for percent-encoded octets within a URL.
HTTP URL redirection can happen via Charging Action or DCCA. For redirection via DCCA, percent encoding is needed only when original URL is appended. URL append is supported only for dcca-custom1 and dcca-custom24 dictionaries. When original URL is embedded in the redirected URL string for HTTP URL redirection, all reserved characters in the original URL are now percent-encoded when redirection is triggered via charging action or DCCA.
In case of HTTP URL redirection, when original URL is embedded in the redirected URL string:
-
All reserved characters in the original URL (per RFC 3986) are percent-encoded in case redirection is triggered via charging-action.
-
All reserved characters in the original URL (per RFC 3986) are percent-encoded in case redirection is triggered via DCCA.
-
The % character, if present in the original URL is percent-encoded to %25.
-
In case the original URL was concatenated with other information, then all reserved characters and % character are percent-encoded if redirection is triggered via charging-action.
The following table lists the reserved characters used for percent encoding and supported as per RFC 3986.
Reserved Character |
ASCII Value |
Percent Encode Format (Hex) |
Support for Charging-action based Redirect |
Support for DCCA based Redirect |
---|---|---|---|---|
: |
58 |
%3A |
Yes |
Yes |
/ |
47 |
%2F |
Yes |
Yes |
? |
63 |
%3F |
Yes |
Yes |
# |
35 |
%23 |
Yes |
Yes |
= |
61 |
%3D |
Yes |
No |
& |
38 |
%26 |
Yes |
No |
+ |
43 |
%2B |
Yes |
No |
@ |
64 |
%40 |
No |
No |
! |
33 |
%21 |
No |
No |
$ |
36 |
%24 |
No |
No |
' |
46 |
%2E |
No |
No |
( |
40 |
%28 |
No |
No |
) |
41 |
%29 |
No |
No |
* |
42 |
%2A |
No |
No |
, |
44 |
%2C |
No |
No |
; |
59 |
%3B |
No |
No |
[ |
91 |
%5B |
No |
No |
] |
93 |
%5D |
No |
No |