[ 
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)

Reply via email to