You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tamas Cservenak (Jira)" <ji...@apache.org> on 2023/01/04 22:08:00 UTC

[jira] [Updated] (MRESOLVER-308) HTTP transport showdown

     [ https://issues.apache.org/jira/browse/MRESOLVER-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Cservenak updated MRESOLVER-308:
--------------------------------------
    Fix Version/s:     (was: 1.9.3)

> HTTP transport showdown
> -----------------------
>
>                 Key: MRESOLVER-308
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-308
>             Project: Maven Resolver
>          Issue Type: Task
>          Components: Resolver
>            Reporter: Tamas Cservenak
>            Assignee: Tamas Cservenak
>            Priority: Major
>
> For HTTP protocol resolver currently provides following transports:
>  * transport-wagon that uses Maven 2.x Wagon, that among other protocols supports HTTP/1.1 as well
>  * transport-http that uses directly Apache HttpClient 4.x supporting HTTP/1.1 but provides enhancements in form of "checksum strategy" (almost all of remote repositories emit those in headers, sparing one HTTP round-trip)
> As we saw, is very easy to outperform these as:
>  * Maven Central supports HTTP/1.1 but also HTTP/2
>  * HTTP/3 is on the way as well
> An experiment involving Jetty Client far outperformed both of existing transports, most probably due HTTP/2 support.
> So, clients we should consider:
>  * Jetty Client
>  * OkHTTP
>  * Java 11 HttpClient
> Point is, to invest into something that (ideally) transparently supports HTTP/1.1 and HTTP/2, and more ideal would be if even HTTP/3 would be transparently supported (Jetty 12 works on that). We could then simply compare these implementations, count in pros and cons, and decide where we want to go,



--
This message was sent by Atlassian Jira
(v8.20.10#820010)