Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vietj/http2-test


https://github.com/vietj/http2-test

Last synced: 20 days ago
JSON representation

Awesome Lists containing this project

README

        

# HTTP/1 versus HTTP/2

This bench the time to perform a given number of http requests to a server and outline the queing effect
of HTTP/1 versus the increased concurrency of HTTP/2. It's not a load test.

several commands are available:

## Client

An http client

## Backend server

A backend server

## Frontend server

A front end server (that usually accesses the backend server)

## Examples

### A client accesses the front end with HTTP/1 that access the backend with HTTP/1

- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-backend --delay 20
- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-frontend http://backend:8080
- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-client --requests 10000 http://frontend:8080

### A client accesses the front end with HTTP/2 that access the backend with HTTP/1

- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-backend --delay 20
- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-frontend http://backend:8080
- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-client --requests 10000 --protocol HTTP_2 http://frontend:8080

### A client accesses the front end with HTTP/2 that access the backend with HTTP/2

- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-backend --delay 20
- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-frontend --protocol HTTP_2 HTTP_2 http://backend:8080
- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-client --requests 10000 --protocol HTTP_2 http://frontend:8080

### A client accesses the backend with HTTP/2

- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-backend --delay 20
- java -jar target/http2-test-3.3.0-SNAPSHOT.jar http-client --requests 10000 --protocol HTTP_2 http://backend:8080

etc...

You can play with:

- protocols in client and frontend
- concurrency : the max concurrency in HTTP/2
- the connection pool size in the front end server
- number of requests
- backend think time