Skip to content

SelinJodhani/httpX-difference

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

httpX-difference

Practical difference between http1.1, http2 and http3

HTTP/1.1 vs. HTTP/2 Performance Comparison

Explore the performance differences between HTTP/1.1 and HTTP/2 protocols under simulated slow network conditions.

Getting Started

1. Clone the Repository:

git clone https://github.com/SelinJodhani/httpx-difference.git

2. Install Docker:

3. Build the Docker Image:

docker build -t http-diff .

4. Run the Container:

docker run -p 8080:80 -p 4040:443 http-diff

5. Test the Endpoints:

  • Access the HTTP/1.1 endpoint in your browser: http://localhost:8080
  • Access the HTTP/2 endpoint in your browser: https://localhost:4040

6. Simulate Slow 3G Network:

  • Use browser developer tools to throttle the network speed to "Slow 3G" for both endpoints.
  • Observe and compare the loading times and performance metrics.

Expected Observations:

  • You should notice faster loading times and improved performance with HTTP/2, especially under simulated slow network conditions.

Additional Notes:

  • This project demonstrates the performance benefits of HTTP/2 in a simplified setup.
  • For more comprehensive analysis, consider using dedicated performance testing tools.
  • Explore further optimizations for real-world applications.

Generate SSL Certificates (For testing it locally)

Here's how to generate a self-signed SSL certificate using OpenSSL:

1. Install OpenSSL:

2. Generate a private key:

  • Open a terminal or command prompt and run:

    openssl genrsa -des3 -out server.key 2048
  • Enter a passphrase when prompted (optional, but recommended for security).

3. Create a Certificate Signing Request (CSR):

  • Run:

    openssl req -new -key server.key -out server.csr
  • Provide information like country, state, city, organization, domain name, etc.

4. Generate the self-signed certificate:

  • Run:

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  • This creates a certificate valid for 365 days. Adjust as needed.

5. (Optional) Remove passphrase from the key (if set):

  • If you want to automate certificate usage without manual passphrase entry:

    openssl rsa -in server.key -out server.key.unsecure

Key files generated:

  • server.key: The private key (keep this secure!).
  • server.crt: The self-signed certificate.

Using the certificate:

  • Configure your web server (e.g., Nginx, Apache) to use the certificate and key files.
  • Note that browsers will display security warnings for self-signed certificates, as they aren't trusted by default.

For production environments:

  • It's strongly recommended to obtain certificates from trusted Certificate Authorities (CAs) for better security and browser trust.

About

Practical difference between http1.1, http2 and http3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published