Search code examples
performancehttpsjmeterload-testingstress-testing

Difference between HTTP and HTTPS while performing Stress Tests


I am doing stress tests / load tests on a mobile application using Jmeter. The problem is that when i perform tests using HTTP it works fine, but using HTTPS makes the server go down.

Is there a mechanism included in HTTPS that blocks a load of simultaneous queries ? What can be the problem please ?

EDIT : The question is about Jmeter and the HTTP/HTTPS. Jmeter simulates a query and starts to re send it like 1000, 2000, etc... time for a specified interval. The use of Jmeter and HTTP works, but Jmeter and HTTPS makes the server go down. Is it possible that the HTTPS have an inside mechanism that could classify the test as DoS attack and block it ?


Solution

  • Notice that HTTP and HTTPS uses different ports

    Different ports can route to different IPs and even application, for example go straight to tomcat without apache server

    About performance it depends, but overall ~insignificant

    HTTPS requires an initial handshake which can be very slow. The actual amount of data transferred as part of the handshake isn't huge (under 5 kB typically), but for very small requests, this can be quite a bit of overhead. However, once the handshake is done, a very fast form of symmetric encryption is used, so the overhead there is minimal. Bottom line: making lots of short requests over HTTPS will be quite a bit slower than HTTP, but if you transfer a lot of data in a single request, the difference will be insignificant.