CWOP was cooked up by a bunch of HAM radio operators over two decades ago and the protocols are those which they used to send data over packet radio. So, whatever you have experience with, this isn't that.
You asked about HTTP(S) specifically, which is an application layer protocol. CWOP uses the APRS-IS protocol. State most certainly matters, since you must first log in to establish the session state before you're able to send any data packets, unlike HTTP(S) where credentials can be supplied in the GET/POST, so there is more programming overhead to manage state.
You need to become familiar with the APRS-IS protocol and the APRS protocol, as well as special requirements for the DNS lookup. It depends on the platform and language you're using, but most getHostByName() calls return a single server. CWOP uses a round robin list of servers so you need to use the extended DNS lookup function which returns the full list of servers, and then try each in order until you get a response. Also, never cache the server, look it up every time. The APRS-IS protocol is needed for establishing a connection with the server. It also defines the packet headers. The APRS protocol defines the message format. The APRS-IS info is here:
https://www.aprs-is.net/ , although the page you need is this:
https://www.aprs-is.net/Connecting.aspx . Once you've established a TCP/IP connection and have logged into an APRS-IS server you are ready to send a packet which you form according to the APRS specification in this document:
http://www.aprs.org/doc/APRS101.PDF , specifically, see Chapter 12 starting on page 62.
You might want to consider using the code from other open source projects rather than wasting you time and patients on reinventing the wheel... it's not as easy as it might seem at first.