There are answers and comments addressing the question of why this probably isn't working and why it may not be workable as you're doing it now. Regarding the part of your question about how to work around it, I think the most straightforward ways would be either:
- Use a proxy with a VPN connection in between
- Send your data from the device connected via GSM to another machine that's got a more conventional connection to the internet.
Either of these require a different computer that's connected to the internet, and you'd give out the IP address of that second computer to anyone (including yourself) trying to access your server.
In the first case, it has to run a VPN service that your GSM-connected phone can access and then forward the http(s) requests via VPN to the computer on the GSM side.
In the second case, you'd have your GSM connected phone send updates to the webserver periodically, but the webserver would directly respond to any incoming http(s) requests.
It is not generally true that you need a static IP address for the webserver, but if you don't have one then you need to update any clients (include public DNS if you have a domain name for it) wanting to access it each time its public IP changes. If you are the only user and your provider does not, in practice, change your IP address often, this may be no problem. No-IP, mentioned in a comment, is one of several services that will manage this for you if you don't have a static address.
This is an issue distinct from whether they are blocking certain types of traffic or certain ports, which they may or may not do regardless of whether your IP address is dynamic or static. You'll have to figure out what your provider is doing because we don't have enough specific information about your case to do that for you.