[
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 could literally 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 TubeMQ is 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 an important
requirement as well in addition to implementation of this functionality.
Potential extra benefits from this upgrade:
1. HTTP 2 Support: maybe one day some of these features 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 encode them by
BASE64 or something like it), however, POST body does NOT have such
restriction, so you could literally 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 TubeMQ is 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 an important
requirement as well in addition to implementation of this functionality.
Potential extra benefits from this upgrade:
1. HTTP 2 Support: maybe one day any of these features 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 could literally 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 TubeMQ is 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 an important
> requirement as well in addition to implementation of this functionality.
> Potential extra benefits from this upgrade:
> 1. HTTP 2 Support: maybe one day some of these features 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)