[
https://issues.apache.org/jira/browse/TUBEMQ-307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeff Zhou updated TUBEMQ-307:
-----------------------------
Description:
As for WebAPI service part, currently it supports only GET request, and
supporting POST request could apparently and significantly improve the
usability and extend the functionality of WebAPI itself.
It could be described as below, some may be so familiar to developers, users,
or relating stakeholders:
1. GET has hard limitation of the length of URL (2KB), however, POST using body
to carry data section, so it does NOT have such limitation, e.g. you may
request an API with even 16MB something if it's really needed;
2. GET requires data to be ASCII characters (or you have to encode them by
BASE64 or something like it), however, POST body does NOT have such
restriction, so you literally could post whatever kind of binary data you want,
so it has wider compatibility, and reduces complexity and contributes to
performance (no extra encoder needed);
3. GET combines all things in URL, so it could easily captured and cached,
while it's visible and less secure to carry sensitive data like identity,
however, POST is obviously safer as generally post body won't be cached or
captured in analyzer or logger or something else in infrastructure;
Provided the currently using Mortbay Jetty (Jetty 6, which has stopped
maintenance for 10+ years), for security, performance and extensibility
consideration, upgrade current Jetty component to Eclipse Jetty (Jetty 9, which
is current mainstream of Jetty, now in hot developing) is also an important
requirement in addition to implementation of this functionality.
Possible extra benefit from this upgrade:
1. HTTP 2 Support: maybe one day any of these feature could play an important
role of WebAPI interaction: Multiplexing / Server Push / Frame-based
Compression / Stream Prioritization
2. Stay in latest distribution, with Feature and Security improvements (see
Jetty VERSION: change log).
So this improvement would consists of 3 major parts:
1. Upgrade Jetty 6 (mortbay) to Jetty 9 (eclipse), with NO WebAPI feature
change;
2. Adding POST support to WebAPI, but stay in HTTP 1.1 as before;
3. Upgrade protocol to HTTP 2.0 for WebAPI (with backward compatibility to HTTP
1.1).
was:
As for WebAPI service part, currently it supports only GET request, and
supporting POST request could apparently and significantly improve the
usability and extend the functionality of WebAPI itself.
It could be described as below, some may be so familiar to developers, users,
or relating stakeholders:
1. GET has hard limitation of the length of URL (2KB), however, POST using body
to carry data section, so it does NOT have such limitation, e.g. you may
request an API with even 16MB something if it's really needed;
2. GET requires data to be ASCII characters (or you have to encoded by BASE64
or something like it), however, POST body does NOT such restriction, so you
literally could post whatever kind of binary data you want, so it has wider
compatibility, and reduces complexity and contributes to performance (no extra
encoder needed);
3. GET combines all things in URL, so it could easily captured and cached,
while it's visible and less secure to carry sensitive data like identity,
however, POST is obviously safer as generally post body won't be cached or
captured in analyzer or logger or something else in infrastructure;
Provided the currently using Mortbay Jetty (Jetty 6, which has stopped
maintenance for 10+ years), for security, performance and extensibility
consideration, upgrade current Jetty component to Eclipse Jetty (Jetty 9, which
is current mainstream of Jetty, now in hot developing) is also an important
requirement in addition to implementation of this functionality.
Possible extra benefit from this upgrade:
1. HTTP 2 Support: maybe one day any of these feature could play an important
role of WebAPI interaction: Multiplexing / Server Push / Frame-based
Compression / Stream Prioritization
2. Stay in latest distribution, with Feature and Security improvements (see
Jetty VERSION: change log).
So this improvement would consists of 3 major parts:
1. Upgrade Jetty 6 (mortbay) to Jetty 9 (eclipse), with NO WebAPI feature
change;
2. Adding POST support to WebAPI, but stay in HTTP 1.1 as before;
3. Upgrade protocol to HTTP 2.0 for WebAPI (with backward compatibility to HTTP
1.1).
> Introduce POST request support to WebAPI service
> ------------------------------------------------
>
> Key: TUBEMQ-307
> URL: https://issues.apache.org/jira/browse/TUBEMQ-307
> Project: Apache TubeMQ
> Issue Type: Improvement
> Components: Server
> Reporter: Jeff Zhou
> Assignee: Jeff Zhou
> Priority: Major
>
> As for WebAPI service part, currently it supports only GET request, and
> supporting POST request could apparently and significantly improve the
> usability and extend the functionality of WebAPI itself.
> It could be described as below, some may be so familiar to developers, users,
> or relating stakeholders:
> 1. GET has hard limitation of the length of URL (2KB), however, POST using
> body to carry data section, so it does NOT have such limitation, e.g. you may
> request an API with even 16MB something if it's really needed;
> 2. GET requires data to be ASCII characters (or you have to encode them by
> BASE64 or something like it), however, POST body does NOT have such
> restriction, so you literally could post whatever kind of binary data you
> want, so it has wider compatibility, and reduces complexity and contributes
> to performance (no extra encoder needed);
> 3. GET combines all things in URL, so it could easily captured and cached,
> while it's visible and less secure to carry sensitive data like identity,
> however, POST is obviously safer as generally post body won't be cached or
> captured in analyzer or logger or something else in infrastructure;
> Provided the currently using Mortbay Jetty (Jetty 6, which has stopped
> maintenance for 10+ years), for security, performance and extensibility
> consideration, upgrade current Jetty component to Eclipse Jetty (Jetty 9,
> which is current mainstream of Jetty, now in hot developing) is also an
> important requirement in addition to implementation of this functionality.
> Possible extra benefit from this upgrade:
> 1. HTTP 2 Support: maybe one day any of these feature could play an important
> role of WebAPI interaction: Multiplexing / Server Push / Frame-based
> Compression / Stream Prioritization
> 2. Stay in latest distribution, with Feature and Security improvements (see
> Jetty VERSION: change log).
> So this improvement would consists of 3 major parts:
> 1. Upgrade Jetty 6 (mortbay) to Jetty 9 (eclipse), with NO WebAPI feature
> change;
> 2. Adding POST support to WebAPI, but stay in HTTP 1.1 as before;
> 3. Upgrade protocol to HTTP 2.0 for WebAPI (with backward compatibility to
> HTTP 1.1).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)