[ 
https://issues.apache.org/jira/browse/TUBEMQ-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17172036#comment-17172036
 ] 

Guocheng Zhang commented on TUBEMQ-307:
---------------------------------------

This place is indeed a problem. It would be great if it can be upgraded and 
improved.  +1 to modify this!

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



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to